AddOrEditSchViewModel.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708
  1. using AutoMapper;
  2. using BizService;
  3. using Model.Dto;
  4. using Model.Entities;
  5. using Newtonsoft.Json;
  6. using NLog;
  7. using PLCTool.Common;
  8. using Prism.Commands;
  9. using Prism.Events;
  10. using Prism.Mvvm;
  11. using Prism.Services.Dialogs;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Collections.ObjectModel;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. using System.Windows;
  19. namespace PLCTool.ViewModels.BasicConfigViewModel
  20. {
  21. public class AddOrEditSchViewModel : BindableBase, IDialogAware
  22. {
  23. private readonly IDialogService _dialog;
  24. private readonly IEventAggregator _aggregator;
  25. private readonly IOptionConfigService _optionConfigService;
  26. private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
  27. private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
  28. private readonly IMapper _mapper;
  29. private readonly ILogger _logger;
  30. private List<OptionConfigDto> _optionConfigs;
  31. public AddOrEditSchViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IMapper mapper)
  32. {
  33. _dialog = dialog;
  34. _aggregator = aggregator;
  35. _optionConfigService = optionConfigService;
  36. _basicPlcTestSchemeService = basicPlcTestSchemeService;
  37. _basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
  38. _mapper = mapper;
  39. //_logger = logger;
  40. CloseCommand = new DelegateCommand(Close);
  41. SureCommand = new DelegateCommand<string>(Sure);
  42. ResetCommand = new DelegateCommand<string>(ResetMethod);
  43. AddDetailCommand = new DelegateCommand<string>(AddPLCDetail);
  44. EditInCommand = new DelegateCommand<object>(EditIn);
  45. EditOutCommand = new DelegateCommand<object>(EditOut);
  46. EditBeforeCommand = new DelegateCommand<Object>(EditBefore);
  47. DeleteBeforeCommand = new DelegateCommand<Object>(DeleteBefore);
  48. DeleteInCommand = new DelegateCommand<object>(DeleteIn);
  49. DeleteOutCommand = new DelegateCommand<object>(DeleteOut);
  50. BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
  51. InConList = new ObservableCollection<BasPlcItemConfigDto>();
  52. OutConList = new ObservableCollection<BasPlcItemConfigDto>();
  53. GetConfigOption();
  54. }
  55. #region idialog接口实现
  56. public string Title { set; get; } = "新增方案";
  57. public event Action<IDialogResult> RequestClose;
  58. public bool CanCloseDialog()
  59. {
  60. return true;
  61. }
  62. public void OnDialogClosed()
  63. {
  64. }
  65. public void OnDialogOpened(IDialogParameters parameters)
  66. {
  67. //编辑
  68. var getMsg = parameters.GetValues<long>("Key");
  69. ///值不为空,表示修改
  70. if (getMsg != null)
  71. {
  72. foreach (var item in getMsg)
  73. {
  74. Title = "编辑方案";
  75. int id = Convert.ToInt32(item);
  76. //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
  77. var findEntity = _basicPlcTestSchemeDtlService.Find(id);
  78. var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
  79. if (findresult != null)
  80. {
  81. //根据方案id 在方案表中查找方案名 设备名
  82. int schID = Convert.ToInt32(findresult.SchemeId);
  83. var findSch = _basicPlcTestSchemeService.Find(schID);
  84. if (findSch != null)
  85. {
  86. ScheduleName = findSch.scheme_name;
  87. DeviceName = findSch.device_name;
  88. }
  89. TestName = findresult.ItemName;
  90. SelectTest = findresult.ItemType;
  91. //前置项解析
  92. string preconStr = findresult.Precondition.ToString();
  93. if (!string.IsNullOrEmpty(preconStr))
  94. {
  95. JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
  96. BeforeSelectJudge = preconditionModel.ItemType;
  97. SelectLogic = preconditionModel.ItemLogical;
  98. BeforeDetail = preconditionModel.Description;
  99. BeforeConList.Clear();
  100. foreach (var detail in preconditionModel.DetailInfo)
  101. {
  102. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  103. basPlcItemConfigDto.PlcItem = detail.PlcItem;
  104. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  105. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  106. basPlcItemConfigDto.Remark = detail.Remark;
  107. beforeConList.Add(basPlcItemConfigDto);
  108. }
  109. }
  110. //输入项解析
  111. string inStr = findresult.Action.ToString();
  112. if (!string.IsNullOrEmpty(inStr))
  113. {
  114. JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
  115. SelectInJudge = inModel.ItemType;
  116. InSelectLogic = inModel.ItemLogical;
  117. InDetail = inModel.Description;
  118. InConList.Clear();
  119. foreach (var detail in inModel.DetailInfo)
  120. {
  121. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  122. basPlcItemConfigDto.PlcItem = detail.PlcItem;
  123. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  124. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  125. basPlcItemConfigDto.Remark = detail.Remark;
  126. InConList.Add(basPlcItemConfigDto);
  127. }
  128. }
  129. //输出项解析
  130. string outStr = findresult.JudgementResult.ToString();
  131. if(!string.IsNullOrEmpty(outStr))
  132. {
  133. JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
  134. SelectOutJudge = outModel.ItemType;
  135. OutSelectLogic = outModel.ItemLogical;
  136. OutDetail = outModel.Description;
  137. OutConList.Clear();
  138. foreach (var detail in outModel.DetailInfo)
  139. {
  140. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  141. basPlcItemConfigDto.PlcItem = detail.PlcItem;
  142. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  143. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  144. basPlcItemConfigDto.Remark = detail.Remark;
  145. OutConList.Add(basPlcItemConfigDto);
  146. }
  147. }
  148. }
  149. }
  150. }
  151. }
  152. #endregion
  153. #region 私有方法
  154. private void OpenEditDialog(Object obj, ObservableCollection<BasPlcItemConfigDto> conList)
  155. {
  156. int id = Convert.ToInt32(obj);
  157. var edit = conList.FirstOrDefault(x => x.Id == id);
  158. if (edit != null)
  159. {
  160. DialogParameters parm = new DialogParameters();
  161. parm.Add("Key", edit);
  162. //弹出详情对话框
  163. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  164. {
  165. if (callback.Result == ButtonResult.OK)
  166. {
  167. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  168. //更新
  169. var after = conList.FirstOrDefault(x => x.Id == id);
  170. if (after != null)
  171. {
  172. after.PlcItem = returnValue.PlcItem;
  173. after.PlcAddress = returnValue.PlcAddress;
  174. after.PlcValue = returnValue.PlcValue;
  175. after.Remark = returnValue.Remark;
  176. }
  177. }
  178. });
  179. }
  180. }
  181. /// <summary>
  182. /// 前置条件编辑
  183. /// </summary>
  184. /// <param name="obj"></param>
  185. /// <exception cref="NotImplementedException"></exception>
  186. private void EditBefore(Object obj)
  187. {
  188. OpenEditDialog(obj, BeforeConList);
  189. }
  190. private void EditOut(object obj)
  191. {
  192. OpenEditDialog(obj, OutConList);
  193. }
  194. private void EditIn(object obj)
  195. {
  196. OpenEditDialog(obj, InConList);
  197. }
  198. /// <summary>
  199. /// 前置条件删除
  200. /// </summary>
  201. /// <param name="obj"></param>
  202. /// <exception cref="NotImplementedException"></exception>
  203. private void DeleteBefore(Object obj)
  204. {
  205. int id = Convert.ToInt32(obj);
  206. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  207. if (boxResult == MessageBoxResult.OK)
  208. {
  209. var del = BeforeConList.FirstOrDefault(x => x.Id == id);
  210. if (del != null)
  211. {
  212. BeforeConList.Remove(del);
  213. }
  214. }
  215. }
  216. private void DeleteOut(object obj)
  217. {
  218. int id = Convert.ToInt32(obj);
  219. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  220. if (boxResult == MessageBoxResult.OK)
  221. {
  222. var del = OutConList.FirstOrDefault(x => x.Id == id);
  223. if (del != null)
  224. {
  225. OutConList.Remove(del);
  226. }
  227. }
  228. }
  229. private void DeleteIn(object obj)
  230. {
  231. int id = Convert.ToInt32(obj);
  232. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  233. if (boxResult == MessageBoxResult.OK)
  234. {
  235. var del = InConList.FirstOrDefault(x => x.Id == id);
  236. if (del != null)
  237. {
  238. InConList.Remove(del);
  239. }
  240. }
  241. }
  242. /// <summary>
  243. /// 获取配置
  244. /// </summary>
  245. private void GetConfigOption()
  246. {
  247. var configList = _optionConfigService.QueryList();
  248. _optionConfigs = _mapper.Map<List<OptionConfig>, List<OptionConfigDto>>(configList);
  249. var tests = _optionConfigs.FindAll(x => x.TypeID == 1);
  250. TestKinds = new List<string>();
  251. foreach (var test in tests)
  252. {
  253. TestKinds.Add(test.ContentOption);
  254. }
  255. //测试项类型
  256. var judges = _optionConfigs.FindAll(x => x.TypeID == 2);
  257. foreach (var judge in judges)
  258. {
  259. BeforeJudgeKinds.Add(judge.ContentOption);
  260. InJudgeKinds.Add(judge.ContentOption);
  261. OutJudgeKinds.Add(judge.ContentOption);
  262. }
  263. //判定逻辑
  264. var logics = _optionConfigs.FindAll(x => x.TypeID == 3);
  265. foreach (var logic in logics)
  266. {
  267. JudgeLogicKinds.Add(logic.ContentOption);
  268. InJudgeLogicKinds.Add(logic.ContentOption);
  269. OutJudgeLogicKinds.Add(logic.ContentOption);
  270. }
  271. }
  272. /// <summary>
  273. /// 新增
  274. /// </summary>
  275. /// <param name="str"></param>
  276. private void AddPLCDetail(string str)
  277. {
  278. DialogParameters parm = new DialogParameters();
  279. parm.Add("Key", "");
  280. //弹出详情对话框
  281. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  282. {
  283. if (callback.Result == ButtonResult.OK)
  284. {
  285. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  286. switch (str)
  287. {
  288. case "Before":
  289. BeforeConList.Add(returnValue); break;
  290. case "In":
  291. InConList.Add(returnValue); break;
  292. case "Out":
  293. OutConList.Add(returnValue); break;
  294. }
  295. }
  296. });
  297. }
  298. /// <summary>
  299. /// 初始化
  300. /// </summary>
  301. /// <summary>
  302. /// 关闭按钮
  303. /// </summary>
  304. private void Close()
  305. {
  306. RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
  307. }
  308. /// <summary>
  309. /// 确认
  310. /// </summary>
  311. /// <param name="obj"></param>
  312. private void Sure(string obj)
  313. {
  314. if (Title == "新增方案")
  315. {
  316. var finsSche = _basicPlcTestSchemeService.FindByName(ScheduleName);
  317. if (finsSche != null)
  318. {
  319. MessageBoxResult boxResult = MessageBox.Show("测试方案名称已存在,请填写其他名称", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  320. return;
  321. }
  322. //增加测试方案到数据库
  323. BasicPlcTestSchemeDto schDto = new BasicPlcTestSchemeDto();
  324. schDto.SchemeName = ScheduleName;
  325. schDto.DeviceName = DeviceName;
  326. schDto.CreateBy = Appsession.UserName;
  327. schDto.CreateTime = DateTime.Now;
  328. schDto.UpdateTime = DateTime.Now;
  329. schDto.UpdateBy = Appsession.UserName;
  330. bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
  331. _basicPlcTestSchemeService.Add(schEntity);
  332. }
  333. //查找测试方案id
  334. var finsScheHave = _basicPlcTestSchemeService.FindByName(ScheduleName);
  335. if (finsScheHave != null)
  336. {
  337. long id = finsScheHave.scheme_id;
  338. //增加或修改方案明细表
  339. AddOrEditDetailsToDb(id);
  340. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  341. }
  342. }
  343. /// <summary>
  344. /// 方案明细添加到数据库
  345. /// </summary>
  346. private void AddOrEditDetailsToDb(long scheduleId)
  347. {
  348. //前置项json转化
  349. string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
  350. //输入项json转化
  351. string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
  352. //输出项json转化
  353. string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
  354. //添加达到测试主表
  355. //增加测试方案
  356. BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
  357. schDtlDto.SchemeId = scheduleId;
  358. schDtlDto.ItemName = TestName;
  359. schDtlDto.ItemType = SelectTest;
  360. schDtlDto.Precondition = prefixJsonStr;
  361. schDtlDto.PreconditionDescribe = BeforeDetail;
  362. schDtlDto.Action = inJsonStr;
  363. schDtlDto.ActionDescribe = InDetail;
  364. schDtlDto.JudgementResult = outJsonStr;
  365. schDtlDto.JudgementResultDescribe = OutDetail;
  366. schDtlDto.CreateBy = Appsession.UserName;
  367. schDtlDto.CreateTime = DateTime.Now;
  368. schDtlDto.UpdateTime = DateTime.Now;
  369. schDtlDto.UpdateBy = Appsession.UserName;
  370. bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  371. if (Title == "新增方案")
  372. {
  373. bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
  374. if (isAddSucc)
  375. {
  376. _logger.Info($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
  377. MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  378. }
  379. else
  380. {
  381. MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  382. return;
  383. }
  384. }
  385. else
  386. {
  387. if (Title == "编辑方案")
  388. {
  389. //修改 必须给主键SchemeDtlId值
  390. var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
  391. if (schDtl != null)
  392. {
  393. schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
  394. bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  395. bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
  396. if (isSucc)
  397. {
  398. _logger.Info($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
  399. MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  400. }
  401. else
  402. {
  403. MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  404. return;
  405. }
  406. }
  407. }
  408. }
  409. }
  410. /// <summary>
  411. /// mode转json
  412. /// </summary>
  413. /// <param name="itemType"></param>
  414. /// <param name="itemLogical"></param>
  415. /// <param name="description"></param>
  416. /// <param name="conList"></param>
  417. /// <returns></returns>
  418. private string ModelToJsonToStr(string itemType, string itemLogical, string description, ObservableCollection<BasPlcItemConfigDto> conList)
  419. {
  420. JsonModel prefixJsonModel = new JsonModel();
  421. prefixJsonModel.ItemType = itemType;
  422. prefixJsonModel.ItemLogical = itemLogical;
  423. prefixJsonModel.Description = description;
  424. prefixJsonModel.DetailInfo = new List<DetailPLC>();
  425. foreach (var item in conList)
  426. {
  427. DetailPLC plcItem = new DetailPLC();
  428. plcItem.PlcItem = item.PlcItem;
  429. plcItem.PlcAddress = item.PlcAddress;
  430. plcItem.PlcValue = item.PlcValue;
  431. plcItem.Remark = item.Remark;
  432. prefixJsonModel.DetailInfo.Add(plcItem);
  433. }
  434. string prefixJsonStr = JsonConvert.SerializeObject(prefixJsonModel);
  435. return prefixJsonStr;
  436. }
  437. /// <summary>
  438. /// 重置
  439. /// </summary>
  440. /// <param name="obj"></param>
  441. private void ResetMethod(string obj)
  442. {
  443. }
  444. #endregion
  445. #region 命令绑定
  446. public DelegateCommand CloseCommand { set; get; }
  447. public DelegateCommand<string> SureCommand { set; get; }
  448. public DelegateCommand<string> ResetCommand { set; get; }
  449. /// <summary>
  450. /// 新增对话框按钮
  451. /// </summary>
  452. public DelegateCommand<string> AddDetailCommand { set; get; }
  453. /// <summary>
  454. /// 表格删除
  455. /// </summary>
  456. public DelegateCommand<Object> DeleteBeforeCommand { set; get; }
  457. /// <summary>
  458. /// 表格编辑按钮
  459. /// </summary>
  460. public DelegateCommand<Object> EditBeforeCommand { set; get; }
  461. /// <summary>
  462. /// 输入项
  463. /// </summary>
  464. public DelegateCommand<Object> DeleteInCommand { set; get; }
  465. public DelegateCommand<Object> EditInCommand { set; get; }
  466. /// <summary>
  467. /// 输出项
  468. /// </summary>
  469. public DelegateCommand<Object> DeleteOutCommand { set; get; }
  470. public DelegateCommand<Object> EditOutCommand { set; get; }
  471. #endregion
  472. #region 变量绑定
  473. /// <summary>
  474. /// 测试方案编码
  475. /// </summary>
  476. private string scheduleName;
  477. public string ScheduleName
  478. {
  479. get { return scheduleName; }
  480. set { scheduleName = value; RaisePropertyChanged(); }
  481. }
  482. /// <summary>
  483. /// 设备名称
  484. /// </summary>
  485. private string deviceName;
  486. public string DeviceName
  487. {
  488. get { return deviceName; }
  489. set { deviceName = value; RaisePropertyChanged(); }
  490. }
  491. /// <summary>
  492. /// 测试项名称
  493. /// </summary>
  494. private string testName;
  495. public string TestName
  496. {
  497. get { return testName; }
  498. set { testName = value; RaisePropertyChanged(); }
  499. }
  500. /// <summary>
  501. /// 测试项类型
  502. /// </summary>
  503. private List<string> testKinds = new List<string>();
  504. public List<string> TestKinds
  505. {
  506. get { return testKinds; }
  507. set { testKinds = value; RaisePropertyChanged(); }
  508. }
  509. /// <summary>
  510. ///
  511. /// </summary>
  512. private string selectTest;
  513. public string SelectTest
  514. {
  515. get { return selectTest; }
  516. set { selectTest = value; RaisePropertyChanged(); }
  517. }
  518. /// <summary>
  519. /// 判定类型(前置项)
  520. /// </summary>
  521. private List<string> beforeJudgeKinds = new List<string>();
  522. public List<string> BeforeJudgeKinds
  523. {
  524. get { return beforeJudgeKinds; }
  525. set { beforeJudgeKinds = value; RaisePropertyChanged(); }
  526. }
  527. private string beforeSelectJudge;
  528. public string BeforeSelectJudge
  529. {
  530. get { return beforeSelectJudge; }
  531. set { beforeSelectJudge = value; RaisePropertyChanged(); }
  532. }
  533. /// <summary>
  534. /// 逻辑判断
  535. /// </summary>
  536. private List<string> judgeLogicKinds = new List<string>();
  537. public List<string> JudgeLogicKinds
  538. {
  539. get { return judgeLogicKinds; }
  540. set { judgeLogicKinds = value; RaisePropertyChanged(); }
  541. }
  542. private string selectLogic;
  543. public string SelectLogic
  544. {
  545. get { return selectLogic; }
  546. set { selectLogic = value; RaisePropertyChanged(); }
  547. }
  548. private string beforeDetail;
  549. public string BeforeDetail
  550. {
  551. get { return beforeDetail; }
  552. set { beforeDetail = value; RaisePropertyChanged(); }
  553. }
  554. private ObservableCollection<BasPlcItemConfigDto> beforeConList;
  555. public ObservableCollection<BasPlcItemConfigDto> BeforeConList
  556. {
  557. get { return beforeConList; }
  558. set { beforeConList = value; RaisePropertyChanged(); }
  559. }
  560. /// <summary>
  561. /// 判定类型(输入项)
  562. /// </summary>
  563. private List<string> inJudgeKinds = new List<string>();
  564. public List<string> InJudgeKinds
  565. {
  566. get { return inJudgeKinds; }
  567. set { inJudgeKinds = value; RaisePropertyChanged(); }
  568. }
  569. private string selectInJudge;
  570. public string SelectInJudge
  571. {
  572. get { return selectInJudge; }
  573. set { selectInJudge = value; RaisePropertyChanged(); }
  574. }
  575. /// <summary>
  576. /// 逻辑判断
  577. /// </summary>
  578. private List<string> inJudgeLogicKinds = new List<string>();
  579. public List<string> InJudgeLogicKinds
  580. {
  581. get { return inJudgeLogicKinds; }
  582. set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
  583. }
  584. private string inSelectLogic;
  585. public string InSelectLogic
  586. {
  587. get { return inSelectLogic; }
  588. set { inSelectLogic = value; RaisePropertyChanged(); }
  589. }
  590. private string inDetail;
  591. public string InDetail
  592. {
  593. get { return inDetail; }
  594. set { inDetail = value; RaisePropertyChanged(); }
  595. }
  596. private ObservableCollection<BasPlcItemConfigDto> inConList;
  597. public ObservableCollection<BasPlcItemConfigDto> InConList
  598. {
  599. get { return inConList; }
  600. set { inConList = value; RaisePropertyChanged(); }
  601. }
  602. /// <summary>
  603. /// 判定类型(结果项)
  604. /// </summary>
  605. private List<string> outJudgeKinds = new List<string>();
  606. public List<string> OutJudgeKinds
  607. {
  608. get { return outJudgeKinds; }
  609. set { outJudgeKinds = value; RaisePropertyChanged(); }
  610. }
  611. private string selectOutJudge;
  612. public string SelectOutJudge
  613. {
  614. get { return selectOutJudge; }
  615. set { selectOutJudge = value; RaisePropertyChanged(); }
  616. }
  617. /// <summary>
  618. /// 逻辑判断
  619. /// </summary>
  620. private List<string> outJudgeLogicKinds = new List<string>();
  621. public List<string> OutJudgeLogicKinds
  622. {
  623. get { return outJudgeLogicKinds; }
  624. set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
  625. }
  626. private string outSelectLogic;
  627. public string OutSelectLogic
  628. {
  629. get { return outSelectLogic; }
  630. set { outSelectLogic = value; RaisePropertyChanged(); }
  631. }
  632. private string outDetail;
  633. public string OutDetail
  634. {
  635. get { return outDetail; }
  636. set { outDetail = value; RaisePropertyChanged(); }
  637. }
  638. private ObservableCollection<BasPlcItemConfigDto> outConList;
  639. public ObservableCollection<BasPlcItemConfigDto> OutConList
  640. {
  641. get { return outConList; }
  642. set { outConList = value; RaisePropertyChanged(); }
  643. }
  644. #endregion
  645. }
  646. }