From 46af5a3a488e06c2eb4844a2dd72ad9ddcd7cdbd Mon Sep 17 00:00:00 2001
From: payne <bzrlw2012@163.com>
Date: 周四, 25 4月 2024 13:21:18 +0800
Subject: [PATCH] 物料详情接口 控制规则明细页面增加字段

---
 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
index 7e2b3d6..7b882f7 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -28,14 +28,18 @@
         private readonly ISysExcelTemplateService _sysExcelTemplateService;
         private readonly static object _lock = new();
         private readonly IRepository<WmsMaterialCustomer, MasterDbContextLocator> _wmsMaterialCustomerRep;
+        private readonly IRepository<BaseCustomer, MasterDbContextLocator> _baseCustomerRep;
         private readonly IRepository<WmsSubstituteGood, MasterDbContextLocator> _wmsSubstituteGoodRep;
+        private readonly IRepository<WmsControlRuleDetail, MasterDbContextLocator> _wmsControlRuleDetailRep;
         public WmsMaterialService(
             IRepository<WmsMaterial,MasterDbContextLocator> wmsMaterialRep
             ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
             ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
             ,ISysExcelTemplateService sysExcelTemplateService
             , IRepository<WmsMaterialCustomer, MasterDbContextLocator> wmsMaterialCustomerRep
+            , IRepository<BaseCustomer, MasterDbContextLocator> baseCustomerRep
             , IRepository<WmsSubstituteGood, MasterDbContextLocator> wmsSubstituteGoodRep
+            , IRepository<WmsControlRuleDetail, MasterDbContextLocator> wmsControlRuleDetailRep
         )
         {
             _wmsMaterialRep = wmsMaterialRep;
@@ -43,7 +47,9 @@
          _sysDictDataRep = sysDictDataRep;
          _sysExcelTemplateService = sysExcelTemplateService;
             _wmsMaterialCustomerRep = wmsMaterialCustomerRep;
+            _baseCustomerRep = baseCustomerRep;
             _wmsSubstituteGoodRep = wmsSubstituteGoodRep;
+            _wmsControlRuleDetailRep = wmsControlRuleDetailRep;
         }
         /// <summary>
         /// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅
@@ -156,9 +162,39 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpGet("WmsMaterial/detail")]
-        public async Task<WmsMaterialOutput> Get([FromQuery] QueryeWmsMaterialInput input)
+        public async Task<WmsMaterialInfoOutput> Get([FromQuery] QueryeWmsMaterialInput input)
         {
-            return (await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialOutput>();
+            WmsMaterialInfoOutput resultInfo = new WmsMaterialInfoOutput();
+            //鑾峰彇鐗╂枡淇℃伅
+            var wmsMaterialInfo =(await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialOutput>();
+            //鑾峰彇鏇挎崲鐗╂枡淇℃伅
+            var wmsSubstituteGoods = await _wmsSubstituteGoodRep.DetachedEntities
+                                         .Where(u => u.MaterialCode == wmsMaterialInfo.MaterialName)
+                                         .Where(u => u.IsDeleted == false)
+                                         .Where(u => u.IsDisabled == false)
+                                         .OrderBy(o => o.CreatedTime)
+                                         .ProjectToType<WmsSubstituteGoodOutput>()
+                                         .ToListAsync();
+            //鑾峰彇鎺у埗灞炴�ц鍒�
+            var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities
+                                              .Where(u => u.Id == wmsMaterialInfo.ControlRuleId)
+                                              .Where(u => u.IsDeleted == false)
+                                              .Where(u => u.IsDisabled == false)
+                                              .OrderBy(o=>o.CreatedTime)
+                                              .ProjectToType<WmsControlRuleDetailOutput>()
+                                              .ToListAsync();
+
+            //鏍规嵁鐗╂枡瀹㈡埛鍏宠仈琛ㄨ幏鍙栧線鏉ヤ俊鎭�
+            var baseCustomers = await _baseCustomerRep.DetachedEntities.Join(_wmsMaterialCustomerRep.DetachedEntities, bc => bc.Id, mc => mc.CustId, (bc, mc) => new { bc, mc })
+                                      .Where(p =>p.mc.MaterialId== wmsMaterialInfo.Id)
+                                      .OrderBy(o => o.mc.CreatedTime)
+                                      .ProjectToType<BaseCustomerOutput>()
+                                      .ToListAsync();
+
+            resultInfo.MaterialInfo = wmsMaterialInfo;
+            resultInfo.SubstituteGoodList = wmsSubstituteGoods;
+            resultInfo.ControlRuleDetailList = wmsControlRuleDetails;
+            return resultInfo;
         }
 
         /// <summary>
@@ -220,6 +256,10 @@
 
             //鏇夸唬鍝佷俊鎭�
             var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
+            foreach (var item in substituteGoodList)
+            {
+                item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID
+            }
 
             wmsMaterial.UpdatedUserId = SysHelper.GetUserId();
             wmsMaterial.UpdatedUserName = SysHelper.GetUserName();
@@ -314,6 +354,10 @@
 
             //鏇夸唬鍝佷俊鎭�
             var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
+            foreach (var item in substituteGoodList)
+            {
+                item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID
+            }
 
             if (materialCustomerList?.Count > 0)
             {

--
Gitblit v1.9.3