From ad12ac859cd0c875b6ec220a48b28b747744186e Mon Sep 17 00:00:00 2001 From: ningshuxia <ningshuxia0927@outlook.com> Date: 星期五, 12 八月 2022 14:37:42 +0800 Subject: [PATCH] 增加 泵曲线映射批量操作接口 --- Service/IStation.Service4Bimface/bimface_file/BimfaceFile_Instance.cs | 2 Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingInput.cs | 32 ++++++++ Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingItemInput.cs | 41 ++++++++++ Application/IStation.Application4DataFile/Helpers/FileHelper.cs | 7 - Application/IStation.Application4Product/pump_curve/mapping/PumpCurveMapping_Controller.cs | 27 ++++++ Model/IStation.Model4Curve/IStation.Model4Curve.csproj | 1 DAL/IStation.DAL4Product/pump_curve/PumpCurveMapping.cs | 56 ++++++++++++++ Service/IStation.Service4Product/pump_curve/pump_curve_mapping/PumpCurveMapping.cs | 55 +++++++++++++ Application/IStation.Application4Job/IStation.Application4Job.csproj | 3 9 files changed, 215 insertions(+), 9 deletions(-) diff --git a/Application/IStation.Application4DataFile/Helpers/FileHelper.cs b/Application/IStation.Application4DataFile/Helpers/FileHelper.cs index 4efdc98..46cc9a1 100644 --- a/Application/IStation.Application4DataFile/Helpers/FileHelper.cs +++ b/Application/IStation.Application4DataFile/Helpers/FileHelper.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using IStation.Untity; -namespace IStation.Application +namespace IStation.Application { /// <summary> /// 澶勭悊鏂囦欢杈呭姪绫� @@ -420,7 +420,7 @@ /// <summary> /// 鑾峰彇鏂囦欢璺緞2 /// </summary> - public static string GetFilePath2(string sub, string fileName) + public static string GetFilePath2(string sub, string fileName) { if (string.IsNullOrEmpty(fileName)) return default; @@ -452,9 +452,6 @@ } #endregion - - - diff --git a/Application/IStation.Application4Job/IStation.Application4Job.csproj b/Application/IStation.Application4Job/IStation.Application4Job.csproj index ea6b1ed..dadcc0b 100644 --- a/Application/IStation.Application4Job/IStation.Application4Job.csproj +++ b/Application/IStation.Application4Job/IStation.Application4Job.csproj @@ -12,6 +12,5 @@ <ItemGroup> <ProjectReference Include="..\..\Service\IStation.Service4Job\IStation.Service4Job.csproj" /> <ProjectReference Include="..\IStation.Application4Core\IStation.Application4Core.csproj" /> - </ItemGroup> - + </ItemGroup> </Project> diff --git a/Application/IStation.Application4Product/pump_curve/mapping/PumpCurveMapping_Controller.cs b/Application/IStation.Application4Product/pump_curve/mapping/PumpCurveMapping_Controller.cs index aa71539..d1a69aa 100644 --- a/Application/IStation.Application4Product/pump_curve/mapping/PumpCurveMapping_Controller.cs +++ b/Application/IStation.Application4Product/pump_curve/mapping/PumpCurveMapping_Controller.cs @@ -283,9 +283,34 @@ { var bol = _service.DeleteWithCurveByID(input.CorpID, input.ID, out string Msg); return new DeleteReasonOutput() { Success = bol, Reason = Msg }; - } + } #endregion + + #region Set + + /// <summary> + /// 璁剧疆 + /// </summary> + [Route("SetOfObject@V1.0")] + [HttpPost] + public bool SetOfObject([Required] SetObjectPumpCurveMappingInput input) + { + var list = input.Items.Select(x => new Model.PumpCurveMapping() + { + CorpID = input.CorpID, + CurveID = input.CorpID, + ID = x.ID, + PumpID = x.PumpID, + OtherName = x.OtherName, + IsWorking = x.IsWorking, + SortCode = x.SortCode, + }).ToList(); + var bol = _service.SetOfObject(input.CorpID, input.CurveID, list); + return bol; + } + + #endregion } } \ No newline at end of file diff --git a/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingInput.cs b/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingInput.cs new file mode 100644 index 0000000..8c23385 --- /dev/null +++ b/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingInput.cs @@ -0,0 +1,32 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IStation.Application +{ + /// <summary> + /// + /// </summary> + public class SetObjectPumpCurveMappingInput + { + /// <summary> + /// 瀹㈡埛鏍囪瘑 + /// </summary> + [Required, Range(1, long.MaxValue, ErrorMessage = "CorpID 蹇呴』澶т簬0")] + public long CorpID { get; set; } + + /// <summary> + /// 鏇茬嚎鏍囪瘑 + /// </summary> + [Required, Range(1, long.MaxValue, ErrorMessage = "CurveID 蹇呴』澶т簬0")] + public long CurveID { get; set; } + + /// <summary> + /// + /// </summary> + public List<SetObjectPumpCurveMappingItemInput> Items { get; set; } + } +} diff --git a/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingItemInput.cs b/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingItemInput.cs new file mode 100644 index 0000000..d05e143 --- /dev/null +++ b/Application/IStation.Application4Product/pump_curve/mapping/dto/SetObjectPumpCurveMappingItemInput.cs @@ -0,0 +1,41 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IStation.Application +{ + /// <summary> + /// + /// </summary> + public class SetObjectPumpCurveMappingItemInput + { + /// <summary> + /// 鏍囪瘑 + /// </summary> + public long ID { get; set; } + + /// <summary> + /// 娉垫爣璇� + /// </summary> + public long PumpID { get; set; } + + /// <summary> + /// 鍒悕 + /// </summary> + public string OtherName { get; set; } + + /// <summary> + /// 宸ヤ綔鏇茬嚎 + /// </summary> + public bool IsWorking { get; set; } + + /// <summary> + /// 鎺掑簭鐮� + /// </summary> + public int SortCode { get; set; } + + + } +} diff --git a/DAL/IStation.DAL4Product/pump_curve/PumpCurveMapping.cs b/DAL/IStation.DAL4Product/pump_curve/PumpCurveMapping.cs index 56261ac..6408ce4 100644 --- a/DAL/IStation.DAL4Product/pump_curve/PumpCurveMapping.cs +++ b/DAL/IStation.DAL4Product/pump_curve/PumpCurveMapping.cs @@ -279,6 +279,62 @@ } + /// <summary> + /// 閫氳繃 CurveID 璁剧疆 + /// </summary> + public bool SetOfObject(long CorpID, long CurveID, List<Entity.PumpCurveMapping> list) + { + if (list == null || list.Count() < 1) + { + using (var db = new SqlSugarClient(ConnectionConfig)) + { + return db.Deleteable<Entity.PumpCurveMapping>() + .Where(x => x.CorpID == CorpID && x.CurveID == CurveID) + .ExecuteCommand() > 0; + } + } + + using (var db = new SqlSugarClient(ConnectionConfig)) + { + try + { + db.BeginTran(); + var add_list = list.Where(x => x.ID < 1).ToList(); + var update_list = list.Where(x => x.ID > 0).ToList(); + var ids_exist = update_list.Select(x => x.ID).Distinct().ToList(); + db.Deleteable<Entity.PumpCurveMapping>().Where(x => x.CorpID == CorpID && x.CurveID == CurveID && !ids_exist.Contains(x.ID)).ExecuteCommand(); + if (add_list.Count > 0) + { + var result = db.Insertable(add_list).ExecuteReturnSnowflakeIdList().Count > 0; + if (!result) + { + db.RollbackTran(); + return default; + } + } + if (update_list.Count > 0) + { + var result = db.Updateable(update_list).ExecuteCommand() > 0; + if (!result) + { + db.RollbackTran(); + return default; + } + } + + db.CommitTran(); + return true; + } + catch + { + db.RollbackTran(); + throw; + } + + } + } + + diff --git a/Model/IStation.Model4Curve/IStation.Model4Curve.csproj b/Model/IStation.Model4Curve/IStation.Model4Curve.csproj index 36e9169..166455a 100644 --- a/Model/IStation.Model4Curve/IStation.Model4Curve.csproj +++ b/Model/IStation.Model4Curve/IStation.Model4Curve.csproj @@ -21,5 +21,4 @@ <ProjectReference Include="..\..\Component\IStation.Numerics\IStation.Numerics.csproj" /> <ProjectReference Include="..\IStation.Model\IStation.Model.csproj" /> </ItemGroup> - </Project> diff --git a/Service/IStation.Service4Bimface/bimface_file/BimfaceFile_Instance.cs b/Service/IStation.Service4Bimface/bimface_file/BimfaceFile_Instance.cs index 827276c..8f82f96 100644 --- a/Service/IStation.Service4Bimface/bimface_file/BimfaceFile_Instance.cs +++ b/Service/IStation.Service4Bimface/bimface_file/BimfaceFile_Instance.cs @@ -19,6 +19,7 @@ var model = mapper.Map<Entity.BimfaceFile, Model.BimfaceFile>(entity); return model; } + //Entities to Models private List<Model.BimfaceFile> Entity2Models(List<Entity.BimfaceFile> entities) { @@ -61,5 +62,6 @@ ).CreateMapper(); mapper.Map(model, entity); } + } } \ No newline at end of file diff --git a/Service/IStation.Service4Product/pump_curve/pump_curve_mapping/PumpCurveMapping.cs b/Service/IStation.Service4Product/pump_curve/pump_curve_mapping/PumpCurveMapping.cs index 422e9c6..7ac1d77 100644 --- a/Service/IStation.Service4Product/pump_curve/pump_curve_mapping/PumpCurveMapping.cs +++ b/Service/IStation.Service4Product/pump_curve/pump_curve_mapping/PumpCurveMapping.cs @@ -114,6 +114,20 @@ } } + //閫氳繃 CurveID 鏇存柊缂撳瓨 + internal void UpdateCorpCacheByCurveID(long CorpID, long CurveID) + { + var dal = new DAL.PumpCurveMapping(); + var entity_list = dal.GetByCurveID(CorpID, CurveID); + var model_list = Entity2Models(entity_list); + var all = GetCorpCache(CorpID); + all.RemoveAll(x => x.CurveID == CurveID); + if (model_list != null && model_list.Count > 0) + { + all.AddRange(model_list); + } + } + //閫氳繃 CurveID 绉婚櫎缂撳瓨 internal void RemoveCorpCacheByCurveID(long CorpID, long CurveID) { @@ -453,5 +467,46 @@ #endregion + + #region Set + + /// <summary> + /// 璁剧疆 CurveID 娴嬬偣鏄犲皠 + /// </summary> + public bool SetOfObject(long CorpID, long CurveID, List<Model.PumpCurveMapping> list) + { + var dal = new DAL.PumpCurveMapping(); + if (list != null && list.Count > 0) + { + var update_working_list = list.FindAll(x => x.IsWorking).ToList(); + if (update_working_list != null && update_working_list.Count > 0) + { + foreach (var working_curve in update_working_list) + { + var relevant_pump_curve_list = GetByPumpID(CorpID, working_curve.PumpID); + if (relevant_pump_curve_list == null || relevant_pump_curve_list.Count < 1) + continue; + var exist_working_curve_list = relevant_pump_curve_list.FindAll(x => x.IsWorking); + if (exist_working_curve_list == null || exist_working_curve_list.Count < 1) + continue; + exist_working_curve_list.ForEach(x => x.IsWorking = false); + list.AddRange(exist_working_curve_list); + } + } + } + var entity_list = Model2Entities(list.ToList()); + var bol = dal.SetOfObject(CorpID, CurveID, entity_list); + if (bol) + { + UpdateCorpCacheByCurveID(CorpID, CurveID); + var other_pump_curve_list = entity_list.Where(x => x.CurveID != CurveID).ToList(); + if (other_pump_curve_list != null && other_pump_curve_list.Count > 0) + { + UpdateCorpCache(CorpID, other_pump_curve_list.Select(x => x.ID).ToList()); + } + } + return bol; + } + #endregion } } -- Gitblit v1.9.3