Переглянути джерело

添加角色和项目、设备关联

ltwork 1 рік тому
батько
коміт
7574bf0c11

+ 5 - 0
BlankApp1/BizService/BasicDevice.cs

@@ -13,5 +13,10 @@ namespace BizService
         {
             return base.GetList(x => x.project_id == projectId);
         }
+        public bas_device FindADeviceByPrjAndName(int projectId, string deviceName)
+        {
+            return base.GetFirst(x =>(x.project_id == projectId)&&(x.device_name==deviceName));
+        }
+
     }
 }

+ 2 - 0
BlankApp1/BizService/IBasicDeviceService.cs

@@ -11,5 +11,7 @@ namespace BizService
     public interface IBasicDeviceService : IBaseService<bas_device>
     {
         public List<bas_device> FindAllDeviceByPrj(int projectId);
+
+        public bas_device FindADeviceByPrjAndName(int projectId,string deviceName);
     }
 }

+ 2 - 2
BlankApp1/BlankApp1/PLCTool.csproj

@@ -5,8 +5,8 @@
     <UseWPF>true</UseWPF>
     <UseWindowsForms>True</UseWindowsForms>
     <ApplicationIcon>bin\Debug\net6.0-windows\Images\TB0228.ico</ApplicationIcon>
-	<AssemblyVersion>2.0.0.2</AssemblyVersion>
-	<FileVersion>2.0.0.2</FileVersion>
+	<AssemblyVersion>2.0.0.3</AssemblyVersion>
+	<FileVersion>2.0.0.3</FileVersion>
   </PropertyGroup>
   <ItemGroup>
     <None Remove="Assets\Fonts\iconfont.ttf" />

+ 12 - 4
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/DeviceViewModel.cs

@@ -27,6 +27,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private readonly IBasicDeviceService _iBasicDeviceService;
         private readonly IBasicDeviceKindService _iBasicDeviceKindService;
         private readonly IBasicProjectService _iBasicProjectService;
+        private readonly IUserDeviceService _iUserDeviceService;
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly Microsoft.Extensions.Logging.ILogger _logger;
@@ -34,11 +35,12 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private List<BasDeviceDto> allDeviceList = new List<BasDeviceDto>();//所有方案
         private List<BasDeviceDto> conditionDevices = new List<BasDeviceDto>();//符合条件的方案
         private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
-        public DeviceViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IMapper mapper, IDialogService dialog, Microsoft.Extensions.Logging.ILogger logger ,IEventAggregator aggregator)
+        public DeviceViewModel(IBasicDeviceService iBasicDeviceService, IUserDeviceService iUserDeviceService,IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IMapper mapper, IDialogService dialog, Microsoft.Extensions.Logging.ILogger logger ,IEventAggregator aggregator)
         {
             _iBasicDeviceService = iBasicDeviceService;
             _iBasicDeviceKindService = iBasicDeviceKindService;
             _iBasicProjectService = iBasicProjectService;
+            _iUserDeviceService = iUserDeviceService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
@@ -293,12 +295,18 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                         }
                         bool isSucc = _iBasicDeviceService.Add(deviceCon);
                         if (isSucc)
-                        {
-                            //重新读取PLC
+                        {   
+                            //添加角色的对应项目
+                            _iUserDeviceService.Add(new UserDevice()
+                            {
+                                UserId = Appsession.UserId,
+                                DeviceId = (int)_iBasicDeviceService.FindADeviceByPrjAndName((int)returnValue.ProjectId, returnValue.DeviceName)?.device_id
+                            });
+                            //重新读取设备
                             GetPprojectConfig();
                             _logger.LogInformation($"添加设备成功,设备名为{returnValue.DeviceName}");
                             SendLogToDis($"添加设备成功,设备名为{returnValue.DeviceName}");
-
+                     
                             MessageBox.Show("添加设备成功!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
                         }
                     }

+ 9 - 1
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/ProjectViewModel.cs

@@ -24,6 +24,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
     public class ProjectViewModel : BindableBase
     {
         private readonly IBasicProjectService _iBasicProjectService;
+        private readonly IRoleProjectService _iRoleProjectService;
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
@@ -31,9 +32,10 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private List<BasProjectDto> allProjectList = new List<BasProjectDto>();//所有方案
         private List<BasProjectDto> conditionProject = new List<BasProjectDto>();//符合条件的方案
         private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
-        public ProjectViewModel(IBasicProjectService iBasicProjectService, IMapper mapper, IEventAggregator aggregator, IDialogService dialog, ILogger logger)
+        public ProjectViewModel(IBasicProjectService iBasicProjectService,IRoleProjectService iRoleProjectService ,IMapper mapper, IEventAggregator aggregator, IDialogService dialog, ILogger logger)
         {
             _iBasicProjectService = iBasicProjectService;
+            _iRoleProjectService = iRoleProjectService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
@@ -253,6 +255,12 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                         bool isSucc = _iBasicProjectService.Add(plcCon);
                         if (isSucc)
                         {
+                            //添加角色的对应项目
+                            _iRoleProjectService.Add(new RoleProject()
+                            {
+                                RoleId = Appsession.RoleId,
+                                ProjectId = (int)_iBasicProjectService.FindByProjectName(returnValue.ProjectName)?.project_id
+                            });
                             //重新读取PLC
                             GetPprojectConfig();
                             _logger.LogInformation($"添加项目成功,类型为{returnValue.ProjectName}");