From 06a22e3d6d75e811affc35e12d00e8fd4259d869 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 09 6月 2024 16:06:55 +0800
Subject: [PATCH] 222

---
 iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs |   92 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 69 insertions(+), 23 deletions(-)

diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs
index 33759b1..4eb2e0c 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs
@@ -22,8 +22,9 @@
     [Route("api/[Controller]")]
     public class EquipmentBaseInfoService : IEquipmentBaseInfoService, IDynamicApiController, ITransient
     {
-        private readonly IRepository<EquipmentBaseInfo,MasterDbContextLocator> _equipmentBaseInfoRep;
-		private readonly IRepository<V_GetEquipmentAlert, MasterDbContextLocator> _v_GetEquipmentAlertRep;
+        private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep;
+        private readonly IRepository<Equipmentbaseinfolog, MasterDbContextLocator> _equipmentbaseinfologRep;
+        private readonly IRepository<V_GetEquipmentAlert, MasterDbContextLocator> _v_GetEquipmentAlertRep;
         private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
         private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
         private readonly IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> _equipmentCurrentMonitorRep;
@@ -37,13 +38,15 @@
         /// <param name="sysDictDataRep"></param>
         /// <param name="equipmentCurrentMonitorRep"></param>
         public EquipmentBaseInfoService(
-            IRepository<EquipmentBaseInfo,MasterDbContextLocator> equipmentBaseInfoRep,
-			IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert,
+            IRepository<Equipmentbaseinfolog, MasterDbContextLocator> equipmentbaseinfologRep,
+            IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep,
+            IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert,
             IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep,
             IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep,
             IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> equipmentCurrentMonitorRep
         )
         {
+            _equipmentbaseinfologRep = equipmentbaseinfologRep;
             _equipmentBaseInfoRep = equipmentBaseInfoRep;
             _v_GetEquipmentAlertRep = v_GetEquipmentAlert;
             _sysDictTypeRep = sysDictTypeRep;
@@ -65,10 +68,10 @@
                                      .Where(!string.IsNullOrEmpty(input.EquipmentId), u => u.EquipmentId == input.EquipmentId)
                                      .Where(!string.IsNullOrEmpty(input.EquipmentName), u => EF.Functions.Like(u.EquipmentName, $"%{input.EquipmentName.Trim()}%"))
                                      .Where(!string.IsNullOrEmpty(input.WorkingProcedure), u => u.WorkingProcedure.Equals(input.WorkingProcedure))
-                                     .Where(!string.IsNullOrEmpty(input.AlertType),u=> (input.AlertType.Equals("1")&& u.IsAlertDetergent) 
-                                     ||(input.AlertType.Equals("2") && u.IsAlertKnifeTool) 
-                                     ||(input.AlertType.Equals("3") && u.IsAlertCuttingFluid) 
-                                     ||(input.AlertType.Equals("4") && u.IsAlert))
+                                     .Where(!string.IsNullOrEmpty(input.AlertType), u => (input.AlertType.Equals("1") && u.IsAlertDetergent)
+                                     || (input.AlertType.Equals("2") && u.IsAlertKnifeTool)
+                                     || (input.AlertType.Equals("3") && u.IsAlertCuttingFluid)
+                                     || (input.AlertType.Equals("4") && u.IsAlert))
                                      .OrderBy(PageInputOrder.OrderBuilder<EquipmentAlertSearch>(input))
                                      .ProjectToType<EquipmentAlertInfoOutput>().ToListAsync();
             return equipmentAlertInfos;
@@ -106,7 +109,7 @@
                                          CuttingFluidChangeTime = s.CuttingFluidChangeTime,
                                          Remarks = s.Remarks,
                                          CreatedTime = s.CreatedTime,
-                                         TactTime=s.TactTime,
+                                         TactTime = s.TactTime,
                                      })
                                      .Distinct()
                                      .OrderBy(PageInputOrder.OrderBuilder<EquipmentBaseInfoSearch>(input))
@@ -114,7 +117,7 @@
                                      .ToADPagedListAsync(input.PageNo, input.PageSize);
             return equipmentBaseInfos;
 
-    }
+        }
 
         /// <summary>
         /// 鏍规嵁璁惧鍩虹淇℃伅绠$悊瀵煎嚭Excel
@@ -129,7 +132,7 @@
                                      .Where(!string.IsNullOrEmpty(input.EquipmentName), u => u.EquipmentName == input.EquipmentName)
                                      .Where(!string.IsNullOrEmpty(input.WorkingProcedure), u => EF.Functions.Like(u.WorkingProcedure, $"%{input.WorkingProcedure.Trim()}%"))
                                      .Where(!string.IsNullOrEmpty(input.EquipmentModel), u => EF.Functions.Like(u.EquipmentModel, $"%{input.EquipmentModel.Trim()}%"))
-                                     .Select(s=>new EquipmentBaseInfoExcelOutput
+                                     .Select(s => new EquipmentBaseInfoExcelOutput
                                      {
                                          Id = s.Id,
                                          EquipmentId = s.EquipmentId,
@@ -146,7 +149,7 @@
                                          CuttingFluidChangeTime = s.CuttingFluidChangeTime,
                                          CuttingFluidChangeAlertThreshold = s.CuttingFluidChangeAlertThreshold,
                                          CreatedTime = s.CreatedTime.ConvertToDateTime(),
-                                         UpdatedTime= s.UpdatedTime.ConvertToDateTime(),
+                                         UpdatedTime = s.UpdatedTime.ConvertToDateTime(),
                                          TactTime = s.TactTime,
                                      })
                                      .Distinct()
@@ -174,13 +177,26 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("add")]
+        [UnitOfWork]
         public async Task Add(AddEquipmentBaseInfoInput input)
         {
             var isExist = await _equipmentBaseInfoRep.AnyAsync(u => u.EquipmentId == input.EquipmentId, false);
             if (isExist) throw Oops.Oh($"褰撳墠璁惧缂栧彿宸插瓨鍦紝鏂板澶辫触锛�");
 
             var equipmentBaseInfo = input.Adapt<EquipmentBaseInfo>();
+            equipmentBaseInfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
             await _equipmentBaseInfoRep.InsertAsync(equipmentBaseInfo);
+
+            //鏂板缁存姢鏃ュ織
+            var log = new Equipmentbaseinfolog()
+            {
+                EquipmentBaseInfoId = equipmentBaseInfo.Id,
+                EquipmentID = equipmentBaseInfo.EquipmentId,
+                OperatorType = EquipmentbaseinfoOperatorTypeEnum.鏂板璁惧,
+                OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.鏂板璁惧).ToString(),
+                OperatorContent = "鏂板璁惧:" + equipmentBaseInfo.EquipmentName,
+            };
+            await _equipmentbaseinfologRep.InsertAsync(log);
         }
 
         /// <summary>
@@ -191,11 +207,11 @@
         [HttpPost("delete")]
         public async Task Delete(DeleteEquipmentBaseInfoInput input)
         {
-            string[] EquiArr = new string[] {"EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" };
-            
+            string[] EquiArr = new string[] { "EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" };
+
             var equipmentBaseInfo = await _equipmentBaseInfoRep.FirstOrDefaultAsync(u => u.Id == input.Id);
 
-            if(EquiArr.Contains(equipmentBaseInfo.EquipmentId)) throw Oops.Oh($"绯荤粺榛樿鐨勮澶囦笉鑳借繘琛屽垹闄わ紒");
+            if (EquiArr.Contains(equipmentBaseInfo.EquipmentId)) throw Oops.Oh($"绯荤粺榛樿鐨勮澶囦笉鑳借繘琛屽垹闄わ紒");
 
             await _equipmentBaseInfoRep.DeleteAsync(equipmentBaseInfo);
         }
@@ -206,13 +222,14 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("selectDelete")]
-        public async Task SelectDelete(List<EquipmentBaseInfoInput>  input)
+        public async Task SelectDelete(List<EquipmentBaseInfoInput> input)
         {
             StringBuilder builder = new StringBuilder();
             string[] EquiArr = new string[] { "EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" };
             foreach (EquipmentBaseInfoInput item in input)
             {
-                if (EquiArr.Contains(item.EquipmentId)) {
+                if (EquiArr.Contains(item.EquipmentId))
+                {
 
                     if (string.IsNullOrEmpty(builder.ToString()))
                     {
@@ -227,7 +244,7 @@
 
             if (!string.IsNullOrEmpty(builder.ToString()))
             {
-                throw Oops.Oh($"绯荤粺榛樿鐨勮澶囥��"+builder.ToString()+"銆戜笉鑳借繘琛屽垹闄わ紒");
+                throw Oops.Oh($"绯荤粺榛樿鐨勮澶囥��" + builder.ToString() + "銆戜笉鑳借繘琛屽垹闄わ紒");
             }
 
             foreach (var item in input)
@@ -243,13 +260,42 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("edit")]
+        [UnitOfWork]
         public async Task Update(UpdateEquipmentBaseInfoInput input)
         {
-            var isExist = await _equipmentBaseInfoRep.AnyAsync(u => u.Id == input.Id && u.EquipmentId == input.EquipmentId, false);
-            if (!isExist) throw Oops.Oh($"璁惧缂栧彿涓嶈兘杩涜鍙樻洿锛屼慨鏀瑰け璐ワ紒");
+            var isExistObj = await _equipmentBaseInfoRep.Where(u => u.Id == input.Id && u.EquipmentId == input.EquipmentId, false).FirstOrDefaultAsync();
+            if (isExistObj == null) throw Oops.Oh($"璁惧缂栧彿涓嶈兘杩涜鍙樻洿锛屼慨鏀瑰け璐ワ紒");
 
             var equipmentBaseInfo = input.Adapt<EquipmentBaseInfo>();
-            await _equipmentBaseInfoRep.UpdateAsync(equipmentBaseInfo,ignoreNullValues:false);
+            await _equipmentBaseInfoRep.UpdateAsync(equipmentBaseInfo, ignoreNullValues: false);
+
+            if (isExistObj.CuttingFluidChangeTime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.CuttingFluidChangeTime?.ToString("yyyy-MM-dd"))
+            {
+                //鏂板缁存姢鏃ュ織
+                var log = new Equipmentbaseinfolog()
+                {
+                    EquipmentBaseInfoId = equipmentBaseInfo.Id,
+                    EquipmentID = equipmentBaseInfo.EquipmentId,
+                    OperatorType = EquipmentbaseinfoOperatorTypeEnum.鍒囧墛娑叉洿鎹�,
+                    OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.鍒囧墛娑叉洿鎹�).ToString(),
+                    OperatorContent = "鏇存崲鏃堕棿:" + equipmentBaseInfo.CuttingFluidChangeTime?.ToString("yyyy-MM-dd"),
+                };
+                await _equipmentbaseinfologRep.InsertAsync(log);
+            }
+            if (isExistObj.Detergentchangetime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.Detergentchangetime?.ToString("yyyy-MM-dd"))
+            {
+                //鏂板缁存姢鏃ュ織
+                var log = new Equipmentbaseinfolog()
+                {
+                    EquipmentBaseInfoId = equipmentBaseInfo.Id,
+                    EquipmentID = equipmentBaseInfo.EquipmentId,
+                    OperatorType = EquipmentbaseinfoOperatorTypeEnum.娓呮礂娑叉洿鎹�,
+                    OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.娓呮礂娑叉洿鎹�).ToString(),
+                    OperatorContent = "鏇存崲鏃堕棿:" + equipmentBaseInfo.Detergentchangetime?.ToString("yyyy-MM-dd"),
+                };
+                await _equipmentbaseinfologRep.InsertAsync(log);
+            }
+
         }
 
         /// <summary>
@@ -296,9 +342,9 @@
             KnifeToolnames.Add("EOP50");
             KnifeToolnames.Add("EOP60");
             var equipmentBaseInfos = await _equipmentBaseInfoRep.DetachedEntities
-                    .Where(!string.IsNullOrEmpty(Type), u => (Type.ToUpper().Equals("QUALITY")?names.Contains(u.EquipmentId):false)||(Type.ToUpper().Equals("KNIFETOOL") ? KnifeToolnames.Contains(u.EquipmentId) : false))
+                    .Where(!string.IsNullOrEmpty(Type), u => (Type.ToUpper().Equals("QUALITY") ? names.Contains(u.EquipmentId) : false) || (Type.ToUpper().Equals("KNIFETOOL") ? KnifeToolnames.Contains(u.EquipmentId) : false))
                                      .ProjectToType<EquipmentBaseInfoOutput>()
-                                     .OrderBy(o=>o.EquipmentId)
+                                     .OrderBy(o => o.EquipmentId)
                                      .ToListAsync();
             return equipmentBaseInfos;
         }

--
Gitblit v1.9.3