AddOrEditSchViewModel.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. using AutoMapper;
  2. using BizService;
  3. using Microsoft.Extensions.Logging;
  4. using Model.Dto;
  5. using Model.Entities;
  6. using Newtonsoft.Json;
  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,ILogger logger)
  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. //测试方案中已有这个名称
  318. if (finsSche != null)
  319. {
  320. long schID = finsSche.scheme_id;
  321. //在测试方案明细表中查找是否有这个测试方案和测试项
  322. var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(schID, TestName);
  323. //在不为空,说明有这个测试方案和测试项了
  324. if (schDtl != null)
  325. {
  326. MessageBoxResult boxResult = MessageBox.Show("此测试方案名称已存在此测试项,请填写其他测试项!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  327. return;
  328. }
  329. }
  330. else
  331. {
  332. //增加测试方案到数据库
  333. BasicPlcTestSchemeDto schDto = new BasicPlcTestSchemeDto();
  334. schDto.SchemeName = ScheduleName;
  335. schDto.DeviceName = DeviceName;
  336. schDto.CreateBy = Appsession.UserName;
  337. schDto.CreateTime = DateTime.Now;
  338. schDto.UpdateTime = DateTime.Now;
  339. schDto.UpdateBy = Appsession.UserName;
  340. bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
  341. _basicPlcTestSchemeService.Add(schEntity);
  342. }
  343. }
  344. //查找测试方案id
  345. var finsScheHave = _basicPlcTestSchemeService.FindByName(ScheduleName);
  346. if (finsScheHave != null)
  347. {
  348. long id = finsScheHave.scheme_id;
  349. //增加或修改方案明细表
  350. AddOrEditDetailsToDb(id);
  351. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  352. }
  353. }
  354. /// <summary>
  355. /// 方案明细添加到数据库
  356. /// </summary>
  357. private void AddOrEditDetailsToDb(long scheduleId)
  358. {
  359. //前置项json转化
  360. string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
  361. //输入项json转化
  362. string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
  363. //输出项json转化
  364. string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
  365. //添加达到测试主表
  366. //增加测试方案
  367. BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
  368. schDtlDto.SchemeId = scheduleId;
  369. schDtlDto.ItemName = TestName;
  370. schDtlDto.ItemType = SelectTest;
  371. schDtlDto.Precondition = prefixJsonStr;
  372. schDtlDto.PreconditionDescribe = BeforeDetail;
  373. schDtlDto.Action = inJsonStr;
  374. schDtlDto.ActionDescribe = InDetail;
  375. schDtlDto.JudgementResult = outJsonStr;
  376. schDtlDto.JudgementResultDescribe = OutDetail;
  377. schDtlDto.CreateBy = Appsession.UserName;
  378. schDtlDto.CreateTime = DateTime.Now;
  379. schDtlDto.UpdateTime = DateTime.Now;
  380. schDtlDto.UpdateBy = Appsession.UserName;
  381. bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  382. schDtlEntity.item_type = StrToItemType(schDtlDto.ItemType);
  383. if (Title == "新增方案")
  384. {
  385. bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
  386. if (isAddSucc)
  387. {
  388. _logger.LogInformation($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
  389. MessageBoxResult boxResult = MessageBox.Show("新增方案成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  390. }
  391. else
  392. {
  393. MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  394. return;
  395. }
  396. }
  397. else
  398. {
  399. if (Title == "编辑方案")
  400. {
  401. //修改 必须给主键SchemeDtlId值
  402. var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
  403. if (schDtl != null)
  404. {
  405. schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
  406. bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  407. bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
  408. if (isSucc)
  409. {
  410. _logger.LogInformation($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
  411. MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  412. }
  413. else
  414. {
  415. MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  416. return;
  417. }
  418. }
  419. }
  420. }
  421. }
  422. /// <summary>
  423. /// 转化
  424. /// </summary>
  425. /// <param name="typeStr"></param>
  426. /// <returns></returns>
  427. private int StrToItemType(string typeStr)
  428. {
  429. int itemInt = 0;
  430. switch (typeStr)
  431. {
  432. case "前置项":
  433. itemInt = 0;
  434. break;
  435. case "PLC点位测试项":
  436. itemInt = 1;
  437. break;
  438. case "Robot动作测试":
  439. itemInt = 2;
  440. break;
  441. }
  442. return itemInt;
  443. }
  444. /// <summary>
  445. /// mode转json
  446. /// </summary>
  447. /// <param name="itemType"></param>
  448. /// <param name="itemLogical"></param>
  449. /// <param name="description"></param>
  450. /// <param name="conList"></param>
  451. /// <returns></returns>
  452. private string ModelToJsonToStr(string itemType, string itemLogical, string description, ObservableCollection<BasPlcItemConfigDto> conList)
  453. {
  454. JsonModel prefixJsonModel = new JsonModel();
  455. prefixJsonModel.ItemType = itemType;
  456. prefixJsonModel.ItemLogical = itemLogical;
  457. prefixJsonModel.Description = description;
  458. prefixJsonModel.DetailInfo = new List<DetailPLC>();
  459. foreach (var item in conList)
  460. {
  461. DetailPLC plcItem = new DetailPLC();
  462. plcItem.PlcItem = item.PlcItem;
  463. plcItem.PlcAddress = item.PlcAddress;
  464. plcItem.PlcValue = item.PlcValue;
  465. plcItem.Remark = item.Remark;
  466. prefixJsonModel.DetailInfo.Add(plcItem);
  467. }
  468. string prefixJsonStr = JsonConvert.SerializeObject(prefixJsonModel);
  469. return prefixJsonStr;
  470. }
  471. /// <summary>
  472. /// 重置
  473. /// </summary>
  474. /// <param name="obj"></param>
  475. private void ResetMethod(string obj)
  476. {
  477. }
  478. #endregion
  479. #region 命令绑定
  480. public DelegateCommand CloseCommand { set; get; }
  481. public DelegateCommand<string> SureCommand { set; get; }
  482. public DelegateCommand<string> ResetCommand { set; get; }
  483. /// <summary>
  484. /// 新增对话框按钮
  485. /// </summary>
  486. public DelegateCommand<string> AddDetailCommand { set; get; }
  487. /// <summary>
  488. /// 表格删除
  489. /// </summary>
  490. public DelegateCommand<Object> DeleteBeforeCommand { set; get; }
  491. /// <summary>
  492. /// 表格编辑按钮
  493. /// </summary>
  494. public DelegateCommand<Object> EditBeforeCommand { set; get; }
  495. /// <summary>
  496. /// 输入项
  497. /// </summary>
  498. public DelegateCommand<Object> DeleteInCommand { set; get; }
  499. public DelegateCommand<Object> EditInCommand { set; get; }
  500. /// <summary>
  501. /// 输出项
  502. /// </summary>
  503. public DelegateCommand<Object> DeleteOutCommand { set; get; }
  504. public DelegateCommand<Object> EditOutCommand { set; get; }
  505. #endregion
  506. #region 变量绑定
  507. /// <summary>
  508. /// 测试方案编码
  509. /// </summary>
  510. private string scheduleName;
  511. public string ScheduleName
  512. {
  513. get { return scheduleName; }
  514. set { scheduleName = value; RaisePropertyChanged(); }
  515. }
  516. /// <summary>
  517. /// 设备名称
  518. /// </summary>
  519. private string deviceName;
  520. public string DeviceName
  521. {
  522. get { return deviceName; }
  523. set { deviceName = value; RaisePropertyChanged(); }
  524. }
  525. /// <summary>
  526. /// 测试项名称
  527. /// </summary>
  528. private string testName;
  529. public string TestName
  530. {
  531. get { return testName; }
  532. set { testName = value; RaisePropertyChanged(); }
  533. }
  534. /// <summary>
  535. /// 测试项类型
  536. /// </summary>
  537. private List<string> testKinds = new List<string>();
  538. public List<string> TestKinds
  539. {
  540. get { return testKinds; }
  541. set { testKinds = value; RaisePropertyChanged(); }
  542. }
  543. /// <summary>
  544. ///
  545. /// </summary>
  546. private string selectTest;
  547. public string SelectTest
  548. {
  549. get { return selectTest; }
  550. set { selectTest = value; RaisePropertyChanged(); }
  551. }
  552. /// <summary>
  553. /// 判定类型(前置项)
  554. /// </summary>
  555. private List<string> beforeJudgeKinds = new List<string>();
  556. public List<string> BeforeJudgeKinds
  557. {
  558. get { return beforeJudgeKinds; }
  559. set { beforeJudgeKinds = value; RaisePropertyChanged(); }
  560. }
  561. private string beforeSelectJudge;
  562. public string BeforeSelectJudge
  563. {
  564. get { return beforeSelectJudge; }
  565. set { beforeSelectJudge = value; RaisePropertyChanged(); }
  566. }
  567. /// <summary>
  568. /// 逻辑判断
  569. /// </summary>
  570. private List<string> judgeLogicKinds = new List<string>();
  571. public List<string> JudgeLogicKinds
  572. {
  573. get { return judgeLogicKinds; }
  574. set { judgeLogicKinds = value; RaisePropertyChanged(); }
  575. }
  576. private string selectLogic;
  577. public string SelectLogic
  578. {
  579. get { return selectLogic; }
  580. set { selectLogic = value; RaisePropertyChanged(); }
  581. }
  582. private string beforeDetail;
  583. public string BeforeDetail
  584. {
  585. get { return beforeDetail; }
  586. set { beforeDetail = value; RaisePropertyChanged(); }
  587. }
  588. private ObservableCollection<BasPlcItemConfigDto> beforeConList;
  589. public ObservableCollection<BasPlcItemConfigDto> BeforeConList
  590. {
  591. get { return beforeConList; }
  592. set { beforeConList = value; RaisePropertyChanged(); }
  593. }
  594. /// <summary>
  595. /// 判定类型(输入项)
  596. /// </summary>
  597. private List<string> inJudgeKinds = new List<string>();
  598. public List<string> InJudgeKinds
  599. {
  600. get { return inJudgeKinds; }
  601. set { inJudgeKinds = value; RaisePropertyChanged(); }
  602. }
  603. private string selectInJudge;
  604. public string SelectInJudge
  605. {
  606. get { return selectInJudge; }
  607. set { selectInJudge = value; RaisePropertyChanged(); }
  608. }
  609. /// <summary>
  610. /// 逻辑判断
  611. /// </summary>
  612. private List<string> inJudgeLogicKinds = new List<string>();
  613. public List<string> InJudgeLogicKinds
  614. {
  615. get { return inJudgeLogicKinds; }
  616. set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
  617. }
  618. private string inSelectLogic;
  619. public string InSelectLogic
  620. {
  621. get { return inSelectLogic; }
  622. set { inSelectLogic = value; RaisePropertyChanged(); }
  623. }
  624. private string inDetail;
  625. public string InDetail
  626. {
  627. get { return inDetail; }
  628. set { inDetail = value; RaisePropertyChanged(); }
  629. }
  630. private ObservableCollection<BasPlcItemConfigDto> inConList;
  631. public ObservableCollection<BasPlcItemConfigDto> InConList
  632. {
  633. get { return inConList; }
  634. set { inConList = value; RaisePropertyChanged(); }
  635. }
  636. /// <summary>
  637. /// 判定类型(结果项)
  638. /// </summary>
  639. private List<string> outJudgeKinds = new List<string>();
  640. public List<string> OutJudgeKinds
  641. {
  642. get { return outJudgeKinds; }
  643. set { outJudgeKinds = value; RaisePropertyChanged(); }
  644. }
  645. private string selectOutJudge;
  646. public string SelectOutJudge
  647. {
  648. get { return selectOutJudge; }
  649. set { selectOutJudge = value; RaisePropertyChanged(); }
  650. }
  651. /// <summary>
  652. /// 逻辑判断
  653. /// </summary>
  654. private List<string> outJudgeLogicKinds = new List<string>();
  655. public List<string> OutJudgeLogicKinds
  656. {
  657. get { return outJudgeLogicKinds; }
  658. set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
  659. }
  660. private string outSelectLogic;
  661. public string OutSelectLogic
  662. {
  663. get { return outSelectLogic; }
  664. set { outSelectLogic = value; RaisePropertyChanged(); }
  665. }
  666. private string outDetail;
  667. public string OutDetail
  668. {
  669. get { return outDetail; }
  670. set { outDetail = value; RaisePropertyChanged(); }
  671. }
  672. private ObservableCollection<BasPlcItemConfigDto> outConList;
  673. public ObservableCollection<BasPlcItemConfigDto> OutConList
  674. {
  675. get { return outConList; }
  676. set { outConList = value; RaisePropertyChanged(); }
  677. }
  678. #endregion
  679. }
  680. }