diff --git a/BPA.SAAS.KitChenManage.Application/BPA.SAAS.KitChenManage.Application.xml b/BPA.SAAS.KitChenManage.Application/BPA.SAAS.KitChenManage.Application.xml index 502db6c..b089751 100644 --- a/BPA.SAAS.KitChenManage.Application/BPA.SAAS.KitChenManage.Application.xml +++ b/BPA.SAAS.KitChenManage.Application/BPA.SAAS.KitChenManage.Application.xml @@ -18,19 +18,22 @@ - + - 修改 + 删除 - + - 删除 + 下发类型1商品 2物料 3配方 + + + + + 设备AutoKey - - @@ -46,13 +49,6 @@ - - - 修改 - - - - 删除 @@ -74,13 +70,6 @@ - - - 修改 - - - - 删除 diff --git a/BPA.SAAS.KitChenManage.Application/Device/DevicePushRecodeServices.cs b/BPA.SAAS.KitChenManage.Application/Device/DevicePushRecodeServices.cs index fba8cc0..4b55156 100644 --- a/BPA.SAAS.KitChenManage.Application/Device/DevicePushRecodeServices.cs +++ b/BPA.SAAS.KitChenManage.Application/Device/DevicePushRecodeServices.cs @@ -37,16 +37,7 @@ namespace BPA.SAAS.KitChenManage.Application.Device { return await _devicePushRecodeService.Add(input); } - /// - /// 修改 - /// - /// - /// - [HttpPost("/api/devicepushrecode/update")] - public async Task Update(DevicePushRecodeDtoInput input) - { - return await _devicePushRecodeService.Update(input); - } + /// /// 删除 /// diff --git a/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoInput.cs b/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoInput.cs index 4af7410..50e39db 100644 --- a/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoInput.cs +++ b/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoInput.cs @@ -8,8 +8,10 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Dtos { public class DevicePushRecodeDtoInput { - public string Id { get; set; } public string DeviceId { get; set; } - public string Type { get; set; } + public string DeviceName { get; set; } + public int DeviceAutoKey { get; set; } + public object Data { get; set; } + public int Type { get; set; } } } diff --git a/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoPageInput.cs b/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoPageInput.cs index 3921383..2a74115 100644 --- a/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoPageInput.cs +++ b/BPA.SAAS.KitChenManage.Application/Device/Dtos/DevicePushRecodeDtoPageInput.cs @@ -9,5 +9,9 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Dtos { public class DevicePushRecodeDtoPageInput: PageInputBase { + /// + /// 下发类型1商品 2物料 3配方 + /// + public int Type { get; set; } } } diff --git a/BPA.SAAS.KitChenManage.Application/Device/Services/DevicePushRecodeService.cs b/BPA.SAAS.KitChenManage.Application/Device/Services/DevicePushRecodeService.cs index ffdb954..bd49360 100644 --- a/BPA.SAAS.KitChenManage.Application/Device/Services/DevicePushRecodeService.cs +++ b/BPA.SAAS.KitChenManage.Application/Device/Services/DevicePushRecodeService.cs @@ -1,14 +1,18 @@ using BPA.Message; +using BPA.Message.IOT; using BPA.SAAS.KitChenManage.Application.Device.Dtos; using BPA.SAAS.KitChenManage.Application.Store.Dtos; using BPA.SAAS.KitChenManage.Core.Base; using BPA.SAAS.KitChenManage.Core.Model; using Furion.LinqBuilder; +using Microsoft.Extensions.Hosting; using MQTTnet; using MQTTnet.Client; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http.Json; using System.Text; using System.Threading.Tasks; @@ -31,13 +35,17 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Services public async Task Page(DevicePushRecodeDtoPageInput input) { RefAsync total = 0; - var res = await _db.Queryable() + var res = await _db.Queryable().Where(x=>x.Type== input.Type) .Select(t => new { CreateAt = t.CreateAt, + CreateBy = t.CreateBy, Id = t.Id, DeviceId = t.DeviceId, - Type=t.Type + DeviceName= t.DeviceName, + Type =t.Type, + Topic=t.Topic, + DataResore=t.DataResore, }).OrderBy(x => x.CreateAt, OrderByType.Desc).ToPageListAsync(input.Current, input.PageSize, total); PageUtil util = new PageUtil() { @@ -54,25 +62,17 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Services /// public async Task Add(DevicePushRecodeDtoInput input) { - var Store = input.Adapt(); - // role.DataScopeType = DataScopeType.ALL; - await Push(0, null); - return await _db.Insertable(Store).CallEntityMethod(t => t.Create()).ExecuteCommandAsync() > 0; - } - /// - /// 修改 - /// - /// - /// - public async Task Update(DevicePushRecodeDtoInput input) - { - var BPA_Store = await _db.Queryable().Where(a => a.Id == input.Id).FirstAsync(); - - var Store = await _db.Queryable().Where(a => a.Id == input.Id).FirstAsync(); - Store.DeviceId = input.DeviceId; - Store.Type = input.Type; - return _db.Updateable(Store).ExecuteCommandHasChange(); - + var data = input.Adapt(); + string Topic = GetTopic(input.Type, input.DeviceAutoKey.ToString()); + if (string.IsNullOrEmpty(Topic)) throw Oops.Oh("请配置相关topic"); + data.Topic= Topic; + data.DataResore = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(input.Data.ToString())); + var res=await Push(Topic, new PushData() { Data=input.Data, DeviceId= input.DeviceAutoKey }); + if (res) + { + await _db.Insertable(data).CallEntityMethod(t => t.Create()).ExecuteCommandAsync(); + } + return res; } /// /// 删除 @@ -94,16 +94,16 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Services throw Oops.Oh("删除失败"); } } - private async Task Push(int AutoKey, PushData data) + private async Task Push(string Topic,PushData data) { try { - string Topic = ""; + // Topic = TOPIC.GetInstance.GetBusinessTopic(x, storeInfo.FirstOrDefault(a => a.Id == item.OrgId).AutoKey) + "/" + item.AutoKey; BPAPackage bPAPackage = new BPAPackage { MessageId = MessageID.TMC_PUSH_INGREDIENTS, - ClientId = AutoKey, + ClientId = data.DeviceId, //ClientType = Procuct MessageVersion = 0x30, Timestamp = DateTime.Now, @@ -113,13 +113,30 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Services // Thread.Sleep(200); //string aa = bPAPackage.Serialize(false); var applictionmessage = new MqttApplicationMessageBuilder().WithTopic(Topic).WithPayload(bPAPackage.Serialize(false)).WithAtLeastOnceQoS().Build(); - _mqttClient.PublishAsync(applictionmessage); + await _mqttClient.PublishAsync(applictionmessage); return true; } - catch (Exception) + catch (Exception e) + { + throw Oops.Oh("下发错误,错误信息:"+e.Message); + } + } + private string GetTopic(int type,string deviceKey) + { + string topic = ""; + switch (type) { - return false; + case 1: //商品下发 + topic = $"/da4bfff042c656210/${deviceKey}/use/goodspush"; + break; + case 2://物料下发 + topic = $"/da4bfff042c656210/${deviceKey}/use/batvhingpush"; + break; + case 4: + topic = $"/da4bfff042c656210/${deviceKey}/use/chnologypush"; + break; } + return topic; } } } diff --git a/BPA.SAAS.KitChenManage.Application/Device/Services/IDevicePushRecodeService.cs b/BPA.SAAS.KitChenManage.Application/Device/Services/IDevicePushRecodeService.cs index 5cc5e00..1528b96 100644 --- a/BPA.SAAS.KitChenManage.Application/Device/Services/IDevicePushRecodeService.cs +++ b/BPA.SAAS.KitChenManage.Application/Device/Services/IDevicePushRecodeService.cs @@ -22,12 +22,7 @@ namespace BPA.SAAS.KitChenManage.Application.Device.Services /// /// Task Add(DevicePushRecodeDtoInput input); - /// - /// 修改 - /// - /// - /// - Task Update(DevicePushRecodeDtoInput input); + /// /// 删除 /// diff --git a/BPA.SAAS.KitChenManage.Application/Store/Services/StoreService.cs b/BPA.SAAS.KitChenManage.Application/Store/Services/StoreService.cs index 3edd476..3cf9239 100644 --- a/BPA.SAAS.KitChenManage.Application/Store/Services/StoreService.cs +++ b/BPA.SAAS.KitChenManage.Application/Store/Services/StoreService.cs @@ -28,7 +28,7 @@ namespace BPA.SAAS.KitChenManage.Application.Store.Services var res = await _db.Queryable() .WhereIF(!input.OrgName.IsNullOrEmpty(), t => t.OrgId.Contains(input.OrgName)) .WhereIF(!input.Name.IsNullOrEmpty(), t => t.Name.Contains(input.Name)) - + .WhereIF(!input.Phone.IsNullOrEmpty(), t => t.Phone.Contains(input.Phone)) .Select(t => new StoreDtoOutput { CreateAt = t.CreateAt, diff --git a/BPA.SAAS.KitChenManage.Core/BPA.SAAS.KitChenManage.Core.xml b/BPA.SAAS.KitChenManage.Core/BPA.SAAS.KitChenManage.Core.xml index 8c9126f..f377eac 100644 --- a/BPA.SAAS.KitChenManage.Core/BPA.SAAS.KitChenManage.Core.xml +++ b/BPA.SAAS.KitChenManage.Core/BPA.SAAS.KitChenManage.Core.xml @@ -60,6 +60,11 @@ + + + 下发类型1商品 2物料 3配方 4工艺 + + 菜谱id diff --git a/BPA.SAAS.KitChenManage.Core/DbContext.cs b/BPA.SAAS.KitChenManage.Core/DbContext.cs index 52fa64a..05e15ce 100644 --- a/BPA.SAAS.KitChenManage.Core/DbContext.cs +++ b/BPA.SAAS.KitChenManage.Core/DbContext.cs @@ -35,6 +35,15 @@ namespace BPA.SAAS.KitChenManage.Core SqlSugarScope sqlSugar = new SqlSugarScope(configConnection, db => { + //过滤已删除数据 + db.QueryFilter.AddTableFilter(it => it.IsDeleted == 0); + //db.QueryFilter.AddTableFilter(it => it.Status == 0); + if (App.User.FindFirst(ClaimConst.CLAINM_SUPERADMIN)?.Value != null) + { + //非管理员账户过滤加盟商数据 + var groupId = App.User?.FindFirst(ClaimConst.GroupId)?.Value; + db.QueryFilter.AddTableFilter(it => it.GroupId == groupId); + } db.Aop.DataExecuting = (oldValue, entityInfo) => { //新增添加加盟商id赋值 @@ -51,15 +60,8 @@ namespace BPA.SAAS.KitChenManage.Core //单例参数配置,所有上下文生效 db.Aop.OnLogExecuting = (sql, pars) => { - //过滤已删除数据 - db.QueryFilter.AddTableFilter(it => it.IsDeleted == 0); - - if (!IsSuperAdmin()) - { - //非管理员账户过滤加盟商数据 - var groupId = App.User?.FindFirst(ClaimConst.GroupId)?.Value; - db.QueryFilter.AddTableFilter(it => it.GroupId == groupId); - } + + //Console.WriteLine(sql);//输出sql Console.WriteLine($"当前SQL语句:【{sql}】,参数:【{string.Join(",", pars.Select(t => t.Value))}】"); diff --git a/BPA.SAAS.KitChenManage.Core/Model/BPA_DevicePushRecode.cs b/BPA.SAAS.KitChenManage.Core/Model/BPA_DevicePushRecode.cs index 02a2c8e..f4acbf5 100644 --- a/BPA.SAAS.KitChenManage.Core/Model/BPA_DevicePushRecode.cs +++ b/BPA.SAAS.KitChenManage.Core/Model/BPA_DevicePushRecode.cs @@ -12,7 +12,13 @@ namespace BPA.SAAS.KitChenManage.Core.Model public class BPA_DevicePushRecode : IBaseEntity, IGroupId { public string DeviceId { get; set; } - public string Type { get; set; } + public string DeviceName { get; set; } + /// + /// 下发类型1商品 2物料 3配方 4工艺 + /// + public int Type { get; set; } public string GroupId { get; set; } + public string Topic { get; set; } + public string DataResore { get; set; } } } diff --git a/BPA.SAAS.KitChenManage.Web.Core/Startup.cs b/BPA.SAAS.KitChenManage.Web.Core/Startup.cs index a18ef1a..116728e 100644 --- a/BPA.SAAS.KitChenManage.Web.Core/Startup.cs +++ b/BPA.SAAS.KitChenManage.Web.Core/Startup.cs @@ -18,6 +18,7 @@ namespace BPA.SAAS.KitChenManage.Web.Core { services.AddConsoleFormatter(); services.AddJwt(); + services.AddMqttClientHostedService(op => { op.Port = int.Parse(App.Configuration["dev1_brokerHostSettings:Port"]); diff --git a/BPA.SAAS.KitChenManage.Web.Entry/appsettings.json b/BPA.SAAS.KitChenManage.Web.Entry/appsettings.json index 2b54937..3c58ba3 100644 --- a/BPA.SAAS.KitChenManage.Web.Entry/appsettings.json +++ b/BPA.SAAS.KitChenManage.Web.Entry/appsettings.json @@ -16,7 +16,7 @@ } ], "dev1_brokerHostSettings": { - "Port": 8083, + "Port": 1883, "Host": "10.2.1.21" }, "MqttClientSettings": {