duheng
2024-07-23 3fec42c6383aa3b8d65f744a93b8a918d7cc6e02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using DevExpress.XtraEditors.Controls;
 
namespace HStation.WinFrmUI.Xhs.PumpProduct
{
    public partial class AddPumpProductMainDlg : DevExpress.XtraEditors.XtraForm
    {
        public AddPumpProductMainDlg()
        {
            InitializeComponent();
        }
 
        private Yw.BLL.SysCatalog _bll = null;
 
        private List<PropGroupChoiceViewModel> _proplist = null;
 
        private AddPumpMainDto _PumpMain = null;   //泵型号
 
        private AddPumpPartMainDto _PumpPart = null; //泵产品
 
        private List<AddPumpPropContentDto> _PumpPropContent = null;  //泵属性
 
        private AddPumpMainAndPartMapDto _PumpMainAndPartMap = null;  //泵型号和产品映射
 
        public async void SetBindingData(long ID)
        {
            var pumpseries = await new BLL.PumpSeries().GetByID(ID);
            if (pumpseries != null)
            {
                _PumpMain = new AddPumpMainDto();
                _PumpPart = new AddPumpPartMainDto();
                _PumpMainAndPartMap = new AddPumpMainAndPartMapDto();
                _PumpMainAndPartMap.SeriesID = pumpseries.ID;
                _PumpMain.PumpSeriesID = pumpseries.ID;
                _PumpPart.SeriesID = pumpseries.ID;
                _bll = new Yw.BLL.SysCatalog();
                var alllist = await _bll.GetAll();
                foreach (var item in alllist)
                {
                    var imageItem = new ImageComboBoxItem(item.Name, item.ID);
                    TextEditCatalog.Properties.Items.Add(imageItem);
                }
                _proplist = new List<PropGroupChoiceViewModel>();
                TextEditCatalog.EditValue = pumpseries.CatalogID;
                this.propGroupChoiceViewModelBindingSource.DataSource = _proplist;
                this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
            }
        }
 
        public event Func<AddPumpMainDto, AddPumpPartMainDto, List<AddPumpPropContentDto>, AddPumpMainAndPartMapDto, Task<bool>> ReloadDataEvent = null;
 
        //数据验证
        private bool Valid()
        {
            this.dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(TextEditName.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.TextEditName, "必填项");
                return false;
            }
            if (string.IsNullOrEmpty(TextEditRatedFlow.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.TextEditRatedFlow, "必填项");
                return false;
            }
            if (string.IsNullOrEmpty(TextEditRatedSpeed.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.TextEditRatedSpeed, "必填项");
                return false;
            }
            if (string.IsNullOrEmpty(TextEditRatedHead.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.TextEditRatedHead, "必填项");
                return false;
            }
            return true;
        }
 
        //完成
        private async void BtnOk_ClickAsync(object sender, EventArgs e)
        {
            if (!(Valid()))
                return;
            _PumpMain.Name = TextEditName.Text.Trim();
            _PumpMain.TagName = TextEditTagName.Text.Trim();
            double ratedFlow;
            double.TryParse(TextEditRatedFlow.Text.Trim(), out ratedFlow);
            _PumpMain.RatedFlow = ratedFlow;
            double ratedHead;
            double.TryParse(TextEditRatedHead.Text.Trim(), out ratedHead);
            _PumpMain.RatedHead = ratedHead;
            double ratedSpeed;
            double.TryParse(TextEditRatedSpeed.Text.Trim(), out ratedSpeed);
            _PumpMain.RatedSpeed = ratedSpeed;
            _PumpMain.Description = DescriptionTextEdit.Text.Trim();
            double d2;
            double.TryParse(TextEditD2.Text.Trim(), out d2);
            _PumpMain.D2 = d2;
            double erosion;
            double.TryParse(TextEditErosion.Text.Trim(), out erosion);
            _PumpMain.Erosion = erosion;
            double ratedPower;
            double.TryParse(TextEditRatedPower.Text.Trim(), out ratedPower);
            _PumpMain.RatedPower = ratedPower;
            double ratedEfficiency;
            double.TryParse(TextEditRatedeffciency.Text.Trim(), out ratedEfficiency);
            _PumpMain.RatedEfficiency = ratedEfficiency;
            _PumpPart.Name = TextEditProductName.Text;
            _PumpPart.NO = TextEditProductNO.Text;
            _PumpPart.Code = TextEditProductCode.Text;
            _PumpPropContent = new List<AddPumpPropContentDto>();
            foreach (var item in _proplist)
            {
                _PumpPropContent.Add(new AddPumpPropContentDto { PropID = item.ID, PropValue = item.Value, SeriesID = _PumpPart.SeriesID });
            }
            if (await this.ReloadDataEvent.Invoke(_PumpMain, _PumpPart, _PumpPropContent, _PumpMainAndPartMap))
            {
                MessageBoxHelper.ShowSuccess("添加成功!");
            }
            else
            {
                MessageBoxHelper.ShowError("添加失败!");
            }
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
 
        //分类选择变换
        private async void TextEditCatalog_SelectedValueChanged(object sender, EventArgs e)
        {
            this.gridView1.Columns["PropGroupName"].Group();
            this.layoutControlGroup2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            this.tabbedControlGroup1.SelectedTabPage = layoutControlGroup2;
            _proplist.Clear();
            var bll = new Yw.BLL.SysPropStruct();
            var catlogID = this.TextEditCatalog.EditValue;
            if (catlogID == null)
                return;
            var id = Convert.ToInt64(catlogID);
            var catlog = await bll.GetByCatalogID(id);
            if (catlog == null)
            {
                this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
                return;
            }
            foreach (var item in catlog)
            {
                foreach (var prop in item.PropList)
                {
                    _proplist.Add(new PropGroupChoiceViewModel() { PropGroupName = item.Name, PropName = prop.Name, ID = prop.ID });
                }
            }
            this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
        }
    }
}