lixiaojun
2024-10-12 a8ccc992964272f6a74631e8c164e8c91e5cb6d4
处理冲突
已删除6个文件
已修改15个文件
1103 ■■■■■ 文件已修改
BLL/HStation.BLL.Assets.Core/03-localclient/01-PumpMainManage/PumpPart.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/AddElbowSeriesInput.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/ElbowSeriesDto.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/UpdateElbowSeriesInput.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/AddElbowMianInput.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/ElbowMainDto.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/UpdateElbowMainInput.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Assets.Core/04-dal/02-postgresql/01-PumpMainManage/PumpPart.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Assets.Core/04-dal/03-sqlite/01-PumpMainManage/PumpPart.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Assets.Core/05-service/01-PumpMainManage/05-PumpPartMain/PumpPartMain.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Assets.Core/05-service/01-PumpMainManage/06-PumpPropContent/PumpPropContent.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Vmo/HStation.Vmo.Assets.Core/01-PumpMainManage/PumpPartMainVmo.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/00-ViewModel/CurrentPumpPartMainViewModel.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.Designer.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.resx 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingHelper.cs 490 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/01-matching/02-pump/XhsPumpMatchingListCtrl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BLL/HStation.BLL.Assets.Core/03-localclient/01-PumpMainManage/PumpPart.cs
@@ -243,17 +243,16 @@
        public async Task<bool> DeleteEx(long ID)
        {
            /*          return await Task.Factory.StartNew(() =>
                      {
                          var bol = _service.DeleteExByID(ID);
                          if (!bol)
                          {
                              throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, "删除失败");
                          }
                          return true;
                      });*/
            return false;
        }
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.DeleteExByID(ID);
                if (!bol)
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, "删除失败");
                }
                return true;
            });
         }
        /// <summary>
        /// é€šè¿‡ Ids åˆ é™¤
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/AddElbowSeriesInput.cs
ÎļþÒÑɾ³ý
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/ElbowSeriesDto.cs
ÎļþÒÑɾ³ý
Dto/HStation.Dto.Assets.Core/05-ElbowManage/01-ElbowSeries/UpdateElbowSeriesInput.cs
ÎļþÒÑɾ³ý
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/AddElbowMianInput.cs
ÎļþÒÑɾ³ý
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/ElbowMainDto.cs
ÎļþÒÑɾ³ý
Dto/HStation.Dto.Assets.Core/05-ElbowManage/02-ElbowMain/UpdateElbowMainInput.cs
ÎļþÒÑɾ³ý
Service/HStation.Service.Assets.Core/04-dal/02-postgresql/01-PumpMainManage/PumpPart.cs
@@ -48,6 +48,10 @@
                            {
                                if (AssetsPumpPropContents != null)
                                {
                                    foreach (var item in AssetsPumpPropContents)
                                    {
                                        item.PartID = result;
                                    }
                                    var content = db.Insertable(AssetsPumpPropContents).ExecuteReturnSnowflakeId();
                                    if (content < 0)
                                    {
Service/HStation.Service.Assets.Core/04-dal/03-sqlite/01-PumpMainManage/PumpPart.cs
@@ -48,6 +48,10 @@
                            {
                                if (AssetsPumpPropContents != null)
                                {
                                    foreach (var item in AssetsPumpPropContents)
                                    {
                                        item.PartID = result;
                                    }
                                    var content = db.Insertable(AssetsPumpPropContents).ExecuteReturnSnowflakeId();
                                    if (content < 0)
                                    {
Service/HStation.Service.Assets.Core/05-service/01-PumpMainManage/05-PumpPartMain/PumpPartMain.cs
@@ -195,7 +195,7 @@
            if (id > 0)
            {
                UpdateCache(id);
                //   AssetsPumpPropContent.UpdateCacheByPartID(id);
                AssetsPumpPropContent.UpdateCacheByPartID(id);
                AssetsPumpMainAndPartMap.UpdateCacheByPartID(id);
            }
            return id;
@@ -327,22 +327,21 @@
            return bol;
        }
        /*        //通过 ID åˆ é™¤äº§å“è¡¨åŠå±žæ€§è¡¨
                public bool DeleteExByID(long ID)
                {
                    var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsPumpPartMain>();
                    var partmain = dal.GetByID(ID);
                    var propmodellist = AssetsPumpPropContent.GetProplistByPartID(ID);
                    var propentitylist = AssetsPumpPropContent.Model2Entities(propmodellist);
                    var bol = dal.DeleteEx(partmain, propentitylist);
                    if (bol)
                    {
                        RemoveCache(ID);
                        AssetsPumpPropContent.RemoveCacheByIDs(propmodellist.Select(x => x.ID).ToList());
                    }
                    return bol;
                }
        */
        //通过 ID åˆ é™¤äº§å“è¡¨åŠå±žæ€§è¡¨
        public bool DeleteExByID(long ID)
        {
            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsPumpPartMain>();
            var partmain = dal.GetByID(ID);
            var propmodellist = AssetsPumpPropContent.GetProplistByPartID(ID);
            var propentitylist = AssetsPumpPropContent.Model2Entities(propmodellist);
            var bol = dal.DeleteEx(partmain, propentitylist);
            if (bol)
            {
                RemoveCache(ID);
                AssetsPumpPropContent.RemoveCacheByIDs(propmodellist.Select(x => x.ID).ToList());
            }
            return bol;
        }
        #endregion Delete
    }
Service/HStation.Service.Assets.Core/05-service/01-PumpMainManage/06-PumpPropContent/PumpPropContent.cs
@@ -43,29 +43,28 @@
            AssetsPumpSeriesCacheHelper.Trigger();
        }
        /*
                //通过 äº§å“ID æ›´æ–°ç¼“å­˜
                public static void UpdateCacheByPartID(long ID)
        //通过 äº§å“ID æ›´æ–°ç¼“å­˜
        public static void UpdateCacheByPartID(long ID)
        {
            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsPumpPropContent>();
            var alllist = dal.GetAll();
            var selectlist = alllist.Where(x => x.PartID == ID).ToList();
            var model_ds = Entity2Models(selectlist);
            var all = GetCache();
            var model = all.Find(x => x.ID == ID);
            if (model == null)
            {
                all.AddRange(model_ds);
            }
            else
            {
                foreach (var item in model_ds)
                {
                    var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsPumpPropContent>();
                    var alllist = dal.GetAll();
                    var selectlist = alllist.Where(x => x.PartID == ID).ToList();
                    var model_ds = Entity2Models(selectlist);
                    var all = GetCache();
                    var model = all.Find(x => x.ID == ID);
                    if (model == null)
                    {
                        all.AddRange(model_ds);
                    }
                    else
                    {
                        foreach (var item in model_ds)
                        {
                            model.Reset(item);
                        }
                    }
                    AssetsPumpSeriesCacheHelper.Trigger();
                }*/
                    model.Reset(item);
                }
            }
            AssetsPumpSeriesCacheHelper.Trigger();
        }
        //通过 Ids æ›´æ–°ç¼“å­˜
        public static void UpdateCache(List<long> Ids)
@@ -142,6 +141,15 @@
        }
        /// <summary>
        /// é€šè¿‡ äº§å“ID èŽ·å–
        /// </summary>
        public static List<Model.AssetsPumpPropContent> GetProplistByPartID(long ID)
        {
            var all = GetCache();
            return all.Where(x => x.PartID == ID).ToList();
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        public List<Model.AssetsPumpPropContent> GetByIds(List<long> Ids)
Vmo/HStation.Vmo.Assets.Core/01-PumpMainManage/PumpPartMainVmo.cs
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HStation.Vmo
namespace HStation.Vmo
{
    public class AssetsPumpPartMainVmo
    {
@@ -14,6 +8,11 @@
        public long ID { get; set; }
        /// <summary>
        /// æ³µè®¾å¤‡ID
        /// </summary>
        public long PartID { get; set; }
        /// <summary>
        /// æ³µç³»åˆ—ID
        /// </summary>
        public long SeriesID { get; set; }
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/00-ViewModel/CurrentPumpPartMainViewModel.cs
@@ -9,6 +9,7 @@
        public CurrentPartMainViewModel(Vmo.AssetsPumpPartMainVmo rhs) : base()
        {
            this.ID = rhs.ID;
           this.PartID=rhs.PartID;
            this.Name = rhs.Name;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
@@ -21,6 +22,7 @@
            this.Name = rhs.Name;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
            this.PartID = rhs.PartID;
            this.SeriesID = rhs.SeriesID;
        }
@@ -29,6 +31,11 @@
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// æ³µè®¾å¤‡ID
        /// </summary>
        public long PartID { get; set; }
        /// <summary>
        /// æ³µç³»åˆ—ID
        /// </summary>
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs
@@ -1,4 +1,5 @@
using HStation.WinFrmUI.Xhs.PumpProduct;
using NetTaste;
namespace HStation.WinFrmUI
{
@@ -9,6 +10,7 @@
            InitializeComponent();
            this.gridView1.Columns["PropGroupName"].Group();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.pumpProductListBox1.MouseUp += PumpProductListBox1_MouseUp;
        }
        private BLL.AssetsPumpPartMain _bll = null;
@@ -117,10 +119,9 @@
            updatepart.Code = TextEditProductCode.Text;
            updatepart.SeriesID = _seriesID;
            var updateproplist = new List<UpdateAssetsPumpPropContentInput>();
            //      var update = _allPropList.Select(x => x.Adapt<AssetsPumpPropContentDto, UpdateAssetsPumpPropContentInput>()).ToList();
            foreach (var item in _proplist)
            {
                if (_allPropList != null)
                if (_allPropList != null || _allBindingList.Count > 0)
                {
                    _allPropList.Find(x => x.PropID == item.ID).PropValue = item.Value;
                }
@@ -138,7 +139,7 @@
        }
        //左侧树右击菜单事件
        private void ListBoxPart_MouseUp(object sender, MouseEventArgs e)
        private void PumpProductListBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.Designer.cs
@@ -38,6 +38,7 @@
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
            barBtnDelete = new DevExpress.XtraBars.BarButtonItem();
            ((System.ComponentModel.ISupportInitialize)listBoxControl1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit();
            SuspendLayout();
@@ -50,6 +51,7 @@
            listBoxControl1.Size = new Size(247, 459);
            listBoxControl1.TabIndex = 0;
            listBoxControl1.SelectedIndexChanged += listBoxControl1_SelectedIndexChanged;
            listBoxControl1.MouseUp += listBoxControl1_MouseUp;
            // 
            // barManager1
            // 
@@ -59,8 +61,8 @@
            barManager1.DockControls.Add(barDockControlLeft);
            barManager1.DockControls.Add(barDockControlRight);
            barManager1.Form = this;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { BtnAddProductProp });
            barManager1.MaxItemId = 1;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { BtnAddProductProp, barBtnDelete });
            barManager1.MaxItemId = 2;
            // 
            // bar1
            // 
@@ -68,7 +70,7 @@
            bar1.DockCol = 0;
            bar1.DockRow = 0;
            bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(BtnAddProductProp) });
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(BtnAddProductProp), new DevExpress.XtraBars.LinkPersistInfo(barBtnDelete) });
            bar1.OptionsBar.AllowQuickCustomization = false;
            bar1.OptionsBar.DrawBorder = false;
            bar1.OptionsBar.DrawDragBorder = false;
@@ -118,6 +120,14 @@
            barDockControlRight.Manager = barManager1;
            barDockControlRight.Size = new Size(0, 459);
            // 
            // barBtnDelete
            //
            barBtnDelete.Caption = "删除属性";
            barBtnDelete.Id = 1;
            barBtnDelete.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDelete.ImageOptions.SvgImage");
            barBtnDelete.Name = "barBtnDelete";
            barBtnDelete.ItemClick += barBtnDelete_ItemClick;
            //
            // PumpProductListBox
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
@@ -145,5 +155,6 @@
        private DevExpress.XtraBars.BarDockControl barDockControlBottom;
        private DevExpress.XtraBars.BarDockControl barDockControlLeft;
        private DevExpress.XtraBars.BarDockControl barDockControlRight;
        private DevExpress.XtraBars.BarButtonItem barBtnDelete;
    }
}
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.cs
@@ -1,4 +1,6 @@
namespace HStation.WinFrmUI.Assets
using DevExpress.XtraEditors;
namespace HStation.WinFrmUI.Assets
{
    public partial class PumpProductListBox : DevExpress.XtraEditors.XtraUserControl
    {
@@ -11,11 +13,15 @@
        public List<CurrentPartMainViewModel> _allBindingList = null;
        public BLL.AssetsPumpPartMain _Bll;
        public event Action<object, MouseEventArgs> MouseUp;
        public async void SetBindingData(Vmo.AssetsPumpMainVmo AssetsPumpMain)
        {
            _allBindingList = new List<CurrentPartMainViewModel>();
            var _bll = new BLL.AssetsPumpPartMain();
            var allpartlist = await _bll.GetByPumpMainID(AssetsPumpMain.ID);   //获取所有产品
            _Bll = new BLL.AssetsPumpPartMain();
            var allpartlist = await _Bll.GetByPumpMainID(AssetsPumpMain.ID);   //获取所有产品
            var series = await new BLL.AssetsPumpSeries().GetByID(AssetsPumpMain.PumpSeriesID);  //获取系列
            if (allpartlist != null)
            {
@@ -47,5 +53,33 @@
        {
            SelectReloadEvent.Invoke();
        }
        private void listBoxControl1_MouseUp(object sender, MouseEventArgs e)
        {
            MouseUp.Invoke(sender, e);
        }
        //删除属性
        private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var vm = this.listBoxControl1.GetCurrentViewModel(_allBindingList);
            if (vm == null)
            {
                TipFormHelper.ShowWarn("请选择数据行!");
                return;
            }
            if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示"))
                return;
            if (await _Bll.DeleteEx(vm.ID))
            {
                _allBindingList.Remove(vm);
                this.listBoxControl1.Refresh();
                TipFormHelper.ShowSucceed("删除成功!");
            }
            else
            {
                TipFormHelper.ShowError("删除失败!");
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/PumpProductListBox.resx
@@ -139,4 +139,27 @@
        Cjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnDelete.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJIDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4NCiAgICA8cGF0aCBk
        PSJNMTguOCwxNmw4LjktOC45YzAuNC0wLjQsMC40LTEsMC0xLjRsLTEuNC0xLjRjLTAuNC0wLjQtMS0w
        LjQtMS40LDBMMTYsMTMuMkw3LjEsNC4zYy0wLjQtMC40LTEtMC40LTEuNCwwICAgTDQuMyw1LjdjLTAu
        NCwwLjQtMC40LDEsMCwxLjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQs
        MS40YzAuNCwwLjQsMSwwLjQsMS40LDBsOC45LTguOWw4LjksOC45ICAgYzAuNCwwLjQsMSwwLjQsMS40
        LDBsMS40LTEuNGMwLjQtMC40LDAuNC0xLDAtMS40TDE4LjgsMTZ6IiBjbGFzcz0iUmVkIiAvPg0KICA8
        L2c+DQo8L3N2Zz4L
</value>
  </data>
</root>
WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
@@ -101,10 +101,10 @@
    <Compile Update="07-fourLink\02-main\FourLinkManageMainPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="08-Nozzle\02-main\AddNozzleMainDlg.cs">
    <Compile Update="08-nozzle\02-main\AddNozzleMainDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="08-Nozzle\02-main\EditNozzleMainDlg.cs">
    <Compile Update="08-nozzle\02-main\EditNozzleMainDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="09-manufacturer\AddManufacturerDlg.cs">
WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingHelper.cs
@@ -1,5 +1,6 @@
using HStation.Vmo;
using HStation.WinFrmUI.PhartRelation;
using System.Windows.Input;
namespace HStation.WinFrmUI
{
@@ -13,8 +14,9 @@
        private const double _powerTolerance = 0.05;
        //资产自动匹配
        public static async Task<bool> Matching(AssetsMatchingViewModel assetsAutoMatchingView)
        public static bool Matching(AssetsMatchingViewModel assetsAutoMatchingView, out string Error)
        {
            Error = string.Empty;
            bool IsMaching = false;
            var AssetsPumpMain = new BLL.AssetsPumpMain();
            var adaptingManage = new BLL.AdaptingManage();
@@ -23,67 +25,74 @@
            var AssetsElbowMain = new BLL.AssetsElbowMain();
            var AssetsThreelinkMain = new BLL.AssetsThreelinkMain();
            var AssetsFourlinkMain = new BLL.AssetsFourlinkMain();
            var allPump = await AssetsPumpMain.GetAll();
            var allAdapting = await adaptingManage.GetAll();
            var allPipeLine = await pipeLineManage.GetAll();
            var allValve = await AssetsValveMain.GetAll();
            var allElbow = await AssetsElbowMain.GetAll();
            var allThreeLink = await AssetsThreelinkMain.GetAll();
            var allFourLink = await AssetsFourlinkMain.GetAll();
            //泵匹配
            foreach (var item in assetsAutoMatchingView.PumpMatchingList)
            try
            {
                if (await MatchingPumps(item, allPump))
                var allPump = Task.Run(async () => await AssetsPumpMain.GetAll()).Result;
                var allAdapting = Task.Run(async () => await adaptingManage.GetAll()).Result;
                var allPipeLine = Task.Run(async () => await pipeLineManage.GetAll()).Result;
                var allValve = Task.Run(async () => await AssetsValveMain.GetAll()).Result;
                var allElbow = Task.Run(async () => await AssetsElbowMain.GetAll()).Result;
                var allThreeLink = Task.Run(async () => await AssetsThreelinkMain.GetAll()).Result;
                var allFourLink = Task.Run(async () => await AssetsFourlinkMain.GetAll()).Result;
                //泵匹配
                foreach (var item in assetsAutoMatchingView.PumpMatchingList)
                {
                    IsMaching = true;
                    if (MatchingPumps(item, allPump))
                    {
                        IsMaching = true;
                    }
                }
                //三通匹配
                foreach (var item in assetsAutoMatchingView.ThreelinkMatchingList)
                {
                    if (MatchingThreelink(item, allThreeLink))
                    {
                        IsMaching = true;
                    }
                }
                //四通匹配
                foreach (var item in assetsAutoMatchingView.FourlinkMatchingList)
                {
                    if (MatchingFourlink(item, allFourLink))
                    {
                        IsMaching = true;
                    }
                }
                //管道匹配
                foreach (var item in assetsAutoMatchingView.PipeMatchingList)
                {
                    if (MatchingPipe(item, allPipeLine))
                    {
                        IsMaching = true;
                    }
                }
                //阀门匹配
                foreach (var item in assetsAutoMatchingView.ValveMatchingList)
                {
                    if (MatchingValve(item, allValve))
                    {
                        IsMaching = true;
                    }
                }
                //弯头匹配
                foreach (var item in assetsAutoMatchingView.ElbowMatchingList)
                {
                    if (MatchingElbow(item, allElbow))
                    {
                        IsMaching = true;
                    }
                }
            }
            //三通匹配
            foreach (var item in assetsAutoMatchingView.ThreelinkMatchingList)
            catch (Exception ex)
            {
                if (MatchingThreelink(item, allThreeLink))
                {
                    IsMaching = true;
                }
            }
            //四通匹配
            foreach (var item in assetsAutoMatchingView.FourlinkMatchingList)
            {
                if (MatchingFourlink(item, allFourLink))
                {
                    IsMaching = true;
                }
            }
            //管道匹配
            foreach (var item in assetsAutoMatchingView.PipeMatchingList)
            {
                if (MatchingPipe(item, allPipeLine))
                {
                    IsMaching = true;
                }
            }
            //阀门匹配
            foreach (var item in assetsAutoMatchingView.ValveMatchingList)
            {
                if (MatchingValve(item, allValve))
                {
                    IsMaching = true;
                }
            }
            //弯头匹配
            foreach (var item in assetsAutoMatchingView.ElbowMatchingList)
            {
                if (MatchingElbow(item, allElbow))
                {
                    IsMaching = true;
                }
                Error = ex.Message;
                return false;
            }
            return IsMaching;
        }
        //泵匹配
        public static async Task<bool> MatchingPumps(PumpMatchingViewModel InputModel, List<Vmo.AssetsPumpMainVmo> AssetsPumpMainVmos)
        public static bool MatchingPumps(PumpMatchingViewModel InputModel, List<Vmo.AssetsPumpMainVmo> AssetsPumpMainVmos)
        {
            if (AssetsPumpMainVmos == null)
            {
@@ -151,7 +160,7 @@
                InputModel.MatchingRatedP = vmo.RatedPower;
                InputModel.MatchingDbId = vmo.ID.ToString();
                InputModel.MatchingModelType = vmo.Name;
                var list = await new BLL.XhsPumpMainPhartMappingExtensions().GetByPumpMainID(vmo.ID);
                var list = Task.Run(async () => await new BLL.XhsPumpMainPhartMappingExtensions().GetByPumpMainID(vmo.ID)).Result;
                if (list != null && list.Count > 0)
                {
                    InputModel.MatchingCurveDbId = list.First().ID.ToString();
@@ -205,37 +214,35 @@
            var absoluteMatch = adaptingManageVmos.Where(i =>
              ((i.Caliber == null) || i.Caliber == input.Diameter) &&
               ((input.Material == null) || i.MaterialName == input.Material)).ToList();
            if (absoluteMatch.Any())
            if (absoluteMatch.Count > 1)
            {
                foreach (var range in absoluteMatch)
                var allMatchingList = absoluteMatch
    .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
    .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
    .ToList();//找出相同字符在2以上并且进行排序
                if (allMatchingList.Count < 1)
                    return false;//通过型号名没有找到,则视为没有匹配到
                foreach (var item in allMatchingList)
                {
                    int commonCount = GetIntersect(input.ModelType, range.KeyWord);
                    if (commonCount > firstCount)
                    if (item.IsDefault)
                    {
                        vmo = range;
                        firstCount = commonCount;
                        vmo = item;
                    }
                }
                vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
            }
            else if (absoluteMatch.Count == 1)
            {
                vmo = absoluteMatch.First();
            }
            else
            {
                //区间匹配
                var rangeMatch = adaptingManageVmos.Where(item =>
                {
                    if (item.Caliber.HasValue)
                    {
                        return Math.Abs(Convert.ToInt64(item.Caliber - input.Diameter)) <= _caliberTolerance;
                    }
                    else
                    {
                        if (item.Caliber == null)
                        {
                            return true;
                        }
                    }
                    return false;
                })
             .ToList();
                var rangeMatch = adaptingManageVmos
               .Where(item =>
                    item.Caliber == null ||
                   Math.Abs(Convert.ToInt64(item.Caliber) - Convert.ToInt64(input.Diameter)) <= _caliberTolerance)
               .ToList();
                if (rangeMatch != null && rangeMatch.Count > 0)
                {
                    var materialList = new List<Vmo.AssetsValveMainVmo>();
@@ -258,31 +265,26 @@
                    }
                    //用已经筛选完成的列表中以名称筛选
                    firstCount = 0;
                    foreach (var material in materialList)
                    if (materialList.Count < 1)
                        return false;
                    var allMatchingList = materialList
  .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
  .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
  .ToList();//找出相同字符在2以上并且进行排序
                    if (allMatchingList.Count < 1)
                        return false;//通过型号名没有找到,则视为没有匹配到
                    foreach (var item in allMatchingList)
                    {
                        int commonCount = GetIntersect(input.ModelType, material.KeyWord);
                        if (commonCount > firstCount)
                        if (item.IsDefault)
                        {
                            vmo = material;
                            firstCount = commonCount;
                            vmo = item;
                        }
                    }
                    vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
                }
            }
            //口径和材料都没有匹配上,就用型号名匹配
            firstCount = 0;
            if (vmo == null)
            {
                foreach (var item in adaptingManageVmos)
                {
                    int commonCount = GetIntersect(input.ModelType, item.KeyWord);
                    if (commonCount > firstCount)
                    {
                        vmo = item;
                        firstCount = commonCount;
                    }
                }
            }
            if (vmo != null)
            {
                input.MatchingMinorLoss = vmo.Coefficient;
@@ -305,63 +307,67 @@
                return true;
            }
            Vmo.AssetsPipeMainVmo vmo = null;
            int StartCount = 0;
            int firstCount = 0;
            //口径最小差值
            // ç»å¯¹åŒ¹é…
            var absoluteMatch = pipeLineManageVmos.Where(i =>
            ((i.Caliber == null) || i.Caliber == input.Diameter) &&
               ((input.Material == null) || i.MaterialName == input.Material)).ToList();
            if (absoluteMatch.Any())
            if (absoluteMatch.Count > 1)
            {
                foreach (var range in absoluteMatch)
                {
                    int commonCount = GetIntersect(input.ModelType, range.KeyWord);
                    if (commonCount > StartCount)
                    {
                        vmo = range;
                        StartCount = commonCount;
                    }
                }
            }
            else if (absoluteMatch.Count == 1)
            {
                vmo = absoluteMatch.First();
            }
            else
            {
                //区间匹配
                var rangeMatch = pipeLineManageVmos.Where(item =>
                {
                    if (item.Caliber != null)
                    {
                        return Math.Abs(Convert.ToInt64(item.Caliber - input.Diameter)) <= _caliberTolerance;
                    }
                    return false;
                })
             .ToList();
                var rangeMatch = pipeLineManageVmos
               .Where(item =>
               item.Caliber == null ||
               Math.Abs(Convert.ToInt64(item.Caliber) - Convert.ToInt64(input.Diameter)) <= _caliberTolerance)
         .ToList();
                if (rangeMatch != null)
                {
                    var materialList = new List<Vmo.AssetsPipeMainVmo>();
                    foreach (var range in rangeMatch)
                    {
                        //以材料为条件开始匹配
                        int commonCount = GetIntersect(input.Material, range.MaterialName);
                        if (commonCount > StartCount)
                        if (range.MaterialName == null)
                        {
                            vmo = range;
                            StartCount = commonCount;
                            materialList.Add(range);
                        }
                        else
                        {
                            int commonCount = GetIntersect(input.Material, range.MaterialName);
                            if (commonCount > firstCount)
                            {
                                materialList.Add(range);
                                firstCount = commonCount;
                            }
                        }
                    }
                    firstCount = 0;
                    if (materialList.Count < 1)
                        return false;
                    var allMatchingList = materialList
                     .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
                     .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
                     .ToList();//找出相同字符在2以上并且进行排序
                    if (allMatchingList.Count < 1)
                        return false;//通过型号名没有找到,则视为没有匹配到
                    foreach (var item in allMatchingList)
                    {
                        if (item.IsDefault)
                        {
                            vmo = item;
                        }
                    }
                    vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
                }
            }
            //口径和材料都没有匹配上,就用型号名匹配
            if (vmo == null)
            {
                foreach (var item in pipeLineManageVmos)
                {
                    int commonCount = GetIntersect(input.ModelType, item.KeyWord);
                    if (commonCount > StartCount)
                    {
                        vmo = item;
                        StartCount = commonCount;
                    }
                }
            }
            if (vmo != null)
            {
                switch (input.eAlgorithmType)
@@ -400,42 +406,40 @@
            }
            Vmo.AssetsElbowMainVmo vmo = null;
            int firstCount = 0;
            //口径最小差值
            // ç»å¯¹åŒ¹é…
            var absoluteMatch = adaptingManageVmos.Where(i =>
              ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) &&
               ((input.Material == null) || i.MaterialName == input.Material)).ToList();
            if (absoluteMatch.Any())
            if (absoluteMatch.Count > 1)
            {
                foreach (var range in absoluteMatch)
                var allMatchingList = absoluteMatch
    .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
    .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
    .ToList();//找出相同字符在2以上并且进行排序
                if (allMatchingList.Count < 1)
                    return false;//通过型号名没有找到,则视为没有匹配到
                foreach (var item in allMatchingList)
                {
                    int commonCount = GetIntersect(input.ModelType, range.KeyWord);
                    if (commonCount > firstCount)
                    if (item.IsDefault)
                    {
                        vmo = range;
                        firstCount = commonCount;
                        vmo = item;
                    }
                }
                vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
            }
            else if (absoluteMatch.Count == 1)
            {
                vmo = absoluteMatch.First();
            }
            else
            {
                //区间匹配
                var rangeMatch = adaptingManageVmos.Where(item =>
                {
                    if (item.Caliber != null && input.Caliber != null)
                    {
                        return Math.Abs(Convert.ToInt64(item.Caliber - input.Caliber)) <= _caliberTolerance;
                    }
                    else
                    {
                        if (item.Caliber == null)
                        {
                            return true;
                        }
                    }
                    return false;
                })
             .ToList();
                var rangeMatch = adaptingManageVmos
   .Where(item =>
       input.Caliber == null ||
       item.Caliber == null ||
       Math.Abs(Convert.ToInt64(item.Caliber) - Convert.ToInt64(input.Caliber)) <= _caliberTolerance)
   .ToList();
                if (rangeMatch != null && rangeMatch.Count > 0)
                {
                    var materialList = new List<Vmo.AssetsElbowMainVmo>();
@@ -458,31 +462,26 @@
                    }
                    //用已经筛选完成的列表中以名称筛选
                    firstCount = 0;
                    foreach (var material in materialList)
                    if (materialList.Count < 1)
                        return false;
                    var allMatchingList = materialList
  .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
  .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
  .ToList();//找出相同字符在2以上并且进行排序
                    if (allMatchingList.Count < 1)
                        return false;//通过型号名没有找到,则视为没有匹配到
                    foreach (var item in allMatchingList)
                    {
                        int commonCount = GetIntersect(input.ModelType, material.KeyWord);
                        if (commonCount > firstCount)
                        if (item.IsDefault)
                        {
                            vmo = material;
                            firstCount = commonCount;
                            vmo = item;
                        }
                    }
                    vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
                }
            }
            //口径和材料都没有匹配上,就用型号名匹配
            //精确匹配和粗糙匹配都没有匹配到就返回错误
            firstCount = 0;
            if (vmo == null)
            {
                foreach (var item in adaptingManageVmos)
                {
                    int commonCount = GetIntersect(input.ModelType, item.Name);
                    if (commonCount > firstCount)
                    {
                        vmo = item;
                        firstCount = commonCount;
                    }
                }
            }
            if (vmo != null)
            {
                input.MatchingMinorLoss = vmo.Coefficient;
@@ -503,42 +502,40 @@
            }
            Vmo.AssetsThreelinkMainVmo vmo = null;
            int firstCount = 0;
            //口径最小差值
            // ç»å¯¹åŒ¹é…
            var absoluteMatch = adaptingManageVmos.Where(i =>
              ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) &&
               ((input.Material == null) || i.MaterialName == input.Material)).ToList();
            if (absoluteMatch.Any())
            if (absoluteMatch.Count > 1)
            {
                foreach (var range in absoluteMatch)
                var allMatchingList = absoluteMatch
    .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
    .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
    .ToList();//找出相同字符在2以上并且进行排序
                if (allMatchingList.Count < 1)
                    return false;//通过型号名没有找到,则视为没有匹配到
                foreach (var item in allMatchingList)
                {
                    int commonCount = GetIntersect(input.ModelType, range.Name);
                    if (commonCount > firstCount)
                    if (item.IsDefault)
                    {
                        vmo = range;
                        firstCount = commonCount;
                        vmo = item;
                    }
                }
                vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
            }
            else if (absoluteMatch.Count == 1)
            {
                vmo = absoluteMatch.First();
            }
            else
            {
                //区间匹配
                var rangeMatch = adaptingManageVmos.Where(item =>
                {
                    if (item.Caliber != null && input.Caliber != null)
                    {
                        return Math.Abs(Convert.ToInt64(item.Caliber - input.Caliber)) <= _caliberTolerance;
                    }
                    else
                    {
                        if (item.Caliber == null)
                        {
                            return true;
                        }
                    }
                    return false;
                })
             .ToList();
                var rangeMatch = adaptingManageVmos
   .Where(item =>
       input.Caliber == null ||
       item.Caliber == null ||
       Math.Abs(Convert.ToInt64(item.Caliber) - Convert.ToInt64(input.Caliber)) <= _caliberTolerance)
   .ToList();
                if (rangeMatch != null && rangeMatch.Count > 0)
                {
                    var materialList = new List<Vmo.AssetsThreelinkMainVmo>();
@@ -561,31 +558,26 @@
                    }
                    //用已经筛选完成的列表中以名称筛选
                    firstCount = 0;
                    foreach (var material in materialList)
                    if (materialList.Count < 1)
                        return false;
                    var allMatchingList = materialList
  .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
  .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
  .ToList();//找出相同字符在2以上并且进行排序
                    if (allMatchingList.Count < 1)
                        return false;//通过型号名没有找到,则视为没有匹配到
                    foreach (var item in allMatchingList)
                    {
                        int commonCount = GetIntersect(input.ModelType, material.Name);
                        if (commonCount > firstCount)
                        if (item.IsDefault)
                        {
                            vmo = material;
                            firstCount = commonCount;
                            vmo = item;
                        }
                    }
                    vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
                }
            }
            //口径和材料都没有匹配上,就用型号名匹配
            //精确匹配和粗糙匹配都没有匹配到就返回错误
            firstCount = 0;
            if (vmo == null)
            {
                foreach (var item in adaptingManageVmos)
                {
                    int commonCount = GetIntersect(input.ModelType, item.Name);
                    if (commonCount > firstCount)
                    {
                        vmo = item;
                        firstCount = commonCount;
                    }
                }
            }
            if (vmo != null)
            {
                input.MatchingMinorLoss = vmo.Coefficient;
@@ -606,42 +598,40 @@
            }
            Vmo.AssetsFourlinkMainVmo vmo = null;
            int firstCount = 0;
            //口径最小差值
            // ç»å¯¹åŒ¹é…
            var absoluteMatch = adaptingManageVmos.Where(i =>
              ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) &&
               ((input.Material == null) || i.MaterialName == input.Material)).ToList();
            if (absoluteMatch.Any())
            if (absoluteMatch.Count > 1)
            {
                foreach (var range in absoluteMatch)
                var allMatchingList = absoluteMatch
    .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
    .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
    .ToList();//找出相同字符在2以上并且进行排序
                if (allMatchingList.Count < 1)
                    return false;//通过型号名没有找到,则视为没有匹配到
                foreach (var item in allMatchingList)
                {
                    int commonCount = GetIntersect(input.ModelType, range.Name);
                    if (commonCount > firstCount)
                    if (item.IsDefault)
                    {
                        vmo = range;
                        firstCount = commonCount;
                        vmo = item;
                    }
                }
                vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
            }
            else if (absoluteMatch.Count == 1)
            {
                vmo = absoluteMatch.First();
            }
            else
            {
                //区间匹配
                var rangeMatch = adaptingManageVmos.Where(item =>
                {
                    if (item.Caliber != null && input.Caliber != null)
                    {
                        return Math.Abs(Convert.ToInt64(item.Caliber - input.Caliber)) <= _caliberTolerance;
                    }
                    else
                    {
                        if (item.Caliber == null)
                        {
                            return true;
                        }
                    }
                    return false;
                })
             .ToList();
                var rangeMatch = adaptingManageVmos
   .Where(item =>
       input.Caliber == null ||
       item.Caliber == null ||
       Math.Abs(Convert.ToInt64(item.Caliber) - Convert.ToInt64(input.Caliber)) <= _caliberTolerance)
   .ToList();
                if (rangeMatch != null && rangeMatch.Count > 0)
                {
                    var materialList = new List<Vmo.AssetsFourlinkMainVmo>();
@@ -664,31 +654,26 @@
                    }
                    //用已经筛选完成的列表中以名称筛选
                    firstCount = 0;
                    foreach (var material in materialList)
                    if (materialList.Count < 1)
                        return false;
                    var allMatchingList = materialList
  .Where(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType) >= 2)
  .OrderByDescending(x => GetIntersect(x.KeyWord == string.Empty ? x.Name : x.KeyWord, input.ModelType))
  .ToList();//找出相同字符在2以上并且进行排序
                    if (allMatchingList.Count < 1)
                        return false;//通过型号名没有找到,则视为没有匹配到
                    foreach (var item in allMatchingList)
                    {
                        int commonCount = GetIntersect(input.ModelType, material.Name);
                        if (commonCount > firstCount)
                        if (item.IsDefault)
                        {
                            vmo = material;
                            firstCount = commonCount;
                            vmo = item;
                        }
                    }
                    vmo = allMatchingList.First();//如果没有设置默认值,则默认返回匹配字符最多的一条数据
                }
            }
            //口径和材料都没有匹配上,就用型号名匹配
            //精确匹配和粗糙匹配都没有匹配到就返回错误
            firstCount = 0;
            if (vmo == null)
            {
                foreach (var item in adaptingManageVmos)
                {
                    int commonCount = GetIntersect(input.ModelType, item.KeyWord);
                    if (commonCount > firstCount)
                    {
                        vmo = item;
                        firstCount = commonCount;
                    }
                }
            }
            if (vmo != null)
            {
                input.MatchingMinorLoss = vmo.Coefficient;
@@ -703,9 +688,6 @@
        /// <summary>
        /// èŽ·å–ä¸¤ä¸ªå­—ç¬¦ä¸²çš„æ‰€æœ‰äº¤é›†
        /// </summary>
        /// <param name="str1"></param>
        /// <param name="str2"></param>
        /// <returns></returns>
        public static int GetIntersect(string str1, string str2)
        {
            if (str1 == null || str2 == null) return 0;
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs
@@ -41,7 +41,7 @@
            feedBackProgress?.Invoke(100, 5);
            #endregion
            #endregion ç¬¬ä¸€æ­¥ ä¸´æ—¶æ–‡ä»¶å¤„理(进度5%)
            #region ç¬¬äºŒæ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 10%)
@@ -77,7 +77,7 @@
            feedBackProgress?.Invoke(100, 10);
            #endregion
            #endregion ç¬¬äºŒæ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 10%)
            #region ç¬¬ä¸‰æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 20%)
@@ -112,7 +112,7 @@
            feedBackProgress?.Invoke(100, 20);
            #endregion
            #endregion ç¬¬ä¸‰æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 20%)
            #region ç¬¬å››æ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦25%)
@@ -139,12 +139,11 @@
                return true;
            }
            feedBackMsg?.Invoke("模型文件解析成功。。。", Color.Green);
            feedBackProgress?.Invoke(100, 25);
            #endregion
            #endregion ç¬¬å››æ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦25%)
            #region ç¬¬äº”æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦30%)
@@ -188,11 +187,13 @@
                                    feedBackMsg?.Invoke($"构件编码:{revitParter.Code},构件属性:{revitParterPropStatus.PropName},错误:{revitParterPropStatus.StatusInfo} ", Color.Red);
                                }
                                break;
                            case Revit.ePropStatus.Lack:
                                {
                                    feedBackMsg?.Invoke($"构件编码:{revitParter.Code},构件属性:{revitParterPropStatus.PropName},缺省:{revitParterPropStatus.StatusInfo} ", Color.Gray);
                                }
                                break;
                            case Revit.ePropStatus.Abnormal:
                                {
                                    feedBackMsg?.Invoke($"构件编码:{revitParter.Code},构件属性:{revitParterPropStatus.PropName},异常:{revitParterPropStatus.StatusInfo} ", Color.Orange);
@@ -209,7 +210,6 @@
                feedBackProgress?.Invoke(100, 100);
                return true;
            }
            var hydroInfo = HStation.Hydro.TransferHelper.FromRevit(structRevitModel, out msg);
            if (hydroInfo == null)
@@ -232,7 +232,7 @@
            feedBackMsg?.Invoke("正在进行产品匹配...", Color.Black);
            hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroId);
            var matchingParas = AssetsMatchingParasHelper.Create(hydroInfo);
            if (await AssetsMatchingHelper.Matching(matchingParas))
            if (AssetsMatchingHelper.Matching(matchingParas, out string error))
            {
                if (AssetsMatchingParasHelper.Apply(hydroInfo, matchingParas))
                {
@@ -253,7 +253,7 @@
            feedBackProgress?.Invoke(100, 30);
            vm.HydroID = hydroId;
            #endregion
            #endregion ç¬¬äº”æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦30%)
            #region ç¬¬å…­æ­¥ å…³è”水力结构模型(进度 40%)
@@ -288,12 +288,11 @@
                return true;
            }
            vm.HydroRelationID = hydroRelationId;
            feedBackMsg?.Invoke("关联水力结构模型成功。。。", Color.Green);
            feedBackProgress?.Invoke(100, 40);
            #endregion
            #endregion ç¬¬å…­æ­¥ å…³è”水力结构模型(进度 40%)
            #region ç¬¬ä¸ƒæ­¥ ä¸Šä¼ Revit模型文件(进度 45%)
@@ -321,7 +320,7 @@
            feedBackMsg?.Invoke("解析Revit模型文件成功。。。", Color.Green);
            feedBackProgress?.Invoke(100, 45);
            #endregion
            #endregion ç¬¬ä¸ƒæ­¥ ä¸Šä¼ Revit模型文件(进度 45%)
            #region ç¬¬å…«æ­¥ ä¿å­˜Bimface文件 ï¼ˆè¿›åº¦ 50%)
@@ -349,7 +348,7 @@
            feedBackMsg?.Invoke("Bimface文件保存成功。。。", Color.Green);
            feedBackProgress?.Invoke(100, 50);
            #endregion
            #endregion ç¬¬å…«æ­¥ ä¿å­˜Bimface文件 ï¼ˆè¿›åº¦ 50%)
            #region ç¬¬ä¹æ­¥ å…³è”Bimface文件(进度 55%)
@@ -374,7 +373,7 @@
            feedBackMsg?.Invoke("Bimface文件关联成功。。。", Color.Green);
            feedBackProgress?.Invoke(100, 55);
            #endregion
            #endregion ç¬¬ä¹æ­¥ å…³è”Bimface文件(进度 55%)
            #region ç¬¬åæ­¥ å‘èµ·bimface转换(进度 80%)
@@ -407,7 +406,7 @@
            feedBackProgress?.Invoke(100, 80);
            #endregion
            #endregion ç¬¬åæ­¥ å‘èµ·bimface转换(进度 80%)
            #region ç¬¬åä¸€æ­¥ æ›´æ–°Bimface文件状态(进度 100%)
@@ -428,10 +427,7 @@
            feedBackMsg?.Invoke("项目导入完成。。。", Color.Green);
            return true;
            #endregion
            #endregion ç¬¬åä¸€æ­¥ æ›´æ–°Bimface文件状态(进度 100%)
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/01-matching/02-pump/XhsPumpMatchingListCtrl.cs
@@ -36,7 +36,7 @@
            foreach (var item in pumpMatchingViewModel)
            {
                await AssetsMatchingHelper.MatchingPumps(item, AssetsPumpMainVmos);
                AssetsMatchingHelper.MatchingPumps(item, AssetsPumpMainVmos);
            }
            _allBindingList.Clear();
            foreach (var item in pumpMatchingViewModel)