|
@@ -228,7 +228,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
/// <summary>
|
|
|
/// 增加测试记录明细
|
|
|
/// </summary>
|
|
|
- private void AddTesDtltRecord(long schDetailId)
|
|
|
+ private void AddOrEditTesDtltRecord(long schDetailId)
|
|
|
{
|
|
|
//查找record ID
|
|
|
long recordId = 0;
|
|
@@ -239,7 +239,6 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
}
|
|
|
testStatus = 99;//测试状态赋值为99
|
|
|
//状态status 没有赋值
|
|
|
-
|
|
|
|
|
|
bizTestRecordDtlDto.RecordId = recordId;
|
|
|
bizTestRecordDtlDto.SchemeDtlId = schDetailId;
|
|
@@ -249,7 +248,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
bizTestRecordDtlDto.Status = testStatus;
|
|
|
bizTestRecordDtlDto.TestResult = GetTestResult();
|
|
|
bizTestRecordDtlDto.CreateBy = Appsession.UserName;
|
|
|
- bizTestRecordDtlDto.CreateTime = DateTime.Now;
|
|
|
+ bizTestRecordDtlDto.CreateTime = startTime;
|
|
|
bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
|
|
|
bizTestRecordDtlDto.UpdateTime = DateTime.Now;
|
|
|
//记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
@@ -269,7 +268,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
UpdateTesDtltRecord();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private int GetTestResult()
|
|
@@ -336,14 +336,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
//界面显示
|
|
|
GetDetailInfo(id);
|
|
|
//记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
- var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
|
|
|
- if (findRecordDetail == null)
|
|
|
- {
|
|
|
-
|
|
|
- //增加测试记录明细
|
|
|
- AddTesDtltRecord(globalSchDetailId);
|
|
|
-
|
|
|
- }
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -367,14 +360,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
//界面显示
|
|
|
GetDetailInfo(id);
|
|
|
//记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
- var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
|
|
|
- if (findRecordDetail == null)
|
|
|
- {
|
|
|
-
|
|
|
- //增加测试记录明细
|
|
|
- AddTesDtltRecord(globalSchDetailId);
|
|
|
-
|
|
|
- }
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -385,24 +371,35 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
/// 开始检测
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
- private void Start(object obj)
|
|
|
+ private async void Start(object obj)
|
|
|
{
|
|
|
+
|
|
|
//开始时间
|
|
|
startTime = DateTime.Now;
|
|
|
//增加测试记录主表
|
|
|
AddTestRecord();
|
|
|
-
|
|
|
+
|
|
|
//前置项
|
|
|
- TestPreceditionMethod();
|
|
|
- //MessageBox.Show("前置项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ bool preBool=TestPreceditionMethod();
|
|
|
+ if(!preBool)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//输入项
|
|
|
- TestActionMethod();
|
|
|
- //MessageBox.Show("输入项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ bool isAction=TestActionMethod();
|
|
|
+ if (!isAction)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//输出项
|
|
|
- TestJudgementMethod();
|
|
|
- //MessageBox.Show("输出项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
- //增加测试记录明细表
|
|
|
- AddTesDtltRecord(globalSchDetailId);
|
|
|
+ bool isJudgeResult=await TestJudgementMethod();
|
|
|
+ if (!isJudgeResult)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 更新测试结果
|
|
@@ -414,7 +411,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
/// <summary>
|
|
|
/// 测试前置项目
|
|
|
/// </summary>
|
|
|
- private void TestPreceditionMethod()
|
|
|
+ private bool TestPreceditionMethod()
|
|
|
{
|
|
|
switch (BeforeSelectJudge)
|
|
|
{
|
|
@@ -423,9 +420,17 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
MessageBoxResult boxResult = MessageBox.Show(BeforeDetail, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
if (boxResult == MessageBoxResult.OK)
|
|
|
{
|
|
|
+ //前置项测试结果json转化
|
|
|
+ string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
+ //json字符串
|
|
|
+ bizTestRecordDtlDto.PreconditionFinal = prefixJsonStr;
|
|
|
bizTestRecordDtlDto.PreconditionResult = "合格";
|
|
|
StepIndex = 1;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
break;
|
|
|
case "自动判定":
|
|
@@ -436,117 +441,97 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
break;
|
|
|
case "AND":
|
|
|
case "ONLY":
|
|
|
- int countCond = 0;
|
|
|
- foreach (var item in BeforeConList)
|
|
|
- {
|
|
|
- string plcAddress = item.PlcAddress;
|
|
|
- string plcAddType = item.PlcAddType;
|
|
|
- string plcValue = item.PlcValue;
|
|
|
-
|
|
|
- switch (plcAddType)
|
|
|
- {
|
|
|
- case "bool":
|
|
|
- string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
- ///实时值记录
|
|
|
-
|
|
|
- item.RealValue = readResult;
|
|
|
- item.TestTime = DateTime.Now;
|
|
|
- if (readResult.Trim() == plcValue.Trim())
|
|
|
- {
|
|
|
- item.TestResult = "合格";
|
|
|
- countCond++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- item.TestResult = "不合格";
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- case "word":
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- //测试记录存入数据库
|
|
|
- //前置项测试结果json转化
|
|
|
- string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
- //json字符串
|
|
|
- bizTestRecordDtlDto.PreconditionFinal = prefixJsonStr;
|
|
|
- //条件满足
|
|
|
- if (countCond == BeforeConList.Count)
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.PreconditionResult = "合格";
|
|
|
- StepIndex = 1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.PreconditionResult = "不合格";
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
case "OR":
|
|
|
- int countCond2 = 0;
|
|
|
- foreach (var item in BeforeConList)
|
|
|
- {
|
|
|
- string plcAddress = item.PlcAddress;
|
|
|
- string plcAddType = item.PlcAddType;
|
|
|
- string plcValue = item.PlcValue;
|
|
|
-
|
|
|
- switch (plcAddType)
|
|
|
- {
|
|
|
- case "bool":
|
|
|
- string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
- ///实时值记录
|
|
|
-
|
|
|
- item.RealValue = readResult;
|
|
|
- item.TestTime = DateTime.Now;
|
|
|
- if (readResult.Trim() == plcValue.Trim())
|
|
|
- {
|
|
|
- item.TestResult = "合格";
|
|
|
- countCond2++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- item.TestResult = "不合格";
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- case "word":
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- //测试记录存入数据库
|
|
|
- //前置项测试结果json转化
|
|
|
- string prefixJsonStr2 = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
- //json字符串
|
|
|
- bizTestRecordDtlDto.PreconditionFinal = prefixJsonStr2;
|
|
|
- //条件满足
|
|
|
- if (countCond2 !=0)
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.PreconditionResult = "合格";
|
|
|
- StepIndex = 1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.PreconditionResult = "不合格";
|
|
|
- }
|
|
|
-
|
|
|
+ ReadPredice(SelectLogic);
|
|
|
break;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
case "ORDER":
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
//更新测试记录
|
|
|
- UpdateTesDtltRecord();
|
|
|
+ AddOrEditTesDtltRecord(globalSchDetailId);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ReadPredice(string strLogic)
|
|
|
+ {
|
|
|
+ int countCond = 0;
|
|
|
+ foreach (var item in BeforeConList)
|
|
|
+ {
|
|
|
+ string plcAddress = item.PlcAddress;
|
|
|
+ string plcAddType = item.PlcAddType;
|
|
|
+ string plcValue = item.PlcValue;
|
|
|
+
|
|
|
+ switch (plcAddType)
|
|
|
+ {
|
|
|
+ case "bool":
|
|
|
+ string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
+ ///实时值记录
|
|
|
+
|
|
|
+ item.RealValue = readResult;
|
|
|
+ item.TestTime = DateTime.Now;
|
|
|
+ if (readResult.Trim() == plcValue.Trim())
|
|
|
+ {
|
|
|
+ item.TestResult = "合格";
|
|
|
+ countCond++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.TestResult = "不合格";
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "word":
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ //测试记录存入数据库
|
|
|
+ //前置项测试结果json转化
|
|
|
+ string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
+ //json字符串
|
|
|
+ bizTestRecordDtlDto.PreconditionFinal = prefixJsonStr;
|
|
|
+ //条件满足
|
|
|
+ switch (strLogic)
|
|
|
+ {
|
|
|
+ case "AND":
|
|
|
+ case "ONLY":
|
|
|
+ if ((countCond == BeforeConList.Count) && (countCond != 0))
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.PreconditionResult = "合格";
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.PreconditionResult = "不合格";
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "OR":
|
|
|
+ if ( (countCond != 0))
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.PreconditionResult = "合格";
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.PreconditionResult = "不合格";
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ StepIndex = 1;
|
|
|
+
|
|
|
}
|
|
|
- private void TestActionMethod()
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 输入项写入
|
|
|
+ /// </summary>
|
|
|
+ private bool TestActionMethod()
|
|
|
{
|
|
|
+ bool isActionResult = true;
|
|
|
switch (SelectInJudge)
|
|
|
{
|
|
|
case "人工判定":
|
|
@@ -554,9 +539,17 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
MessageBoxResult boxResult = MessageBox.Show(InDetail, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
if (boxResult == MessageBoxResult.OK)
|
|
|
{
|
|
|
+ //前置项测试结果json转化
|
|
|
+ string actionJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
|
|
|
+ //json字符串
|
|
|
+ bizTestRecordDtlDto.ActionFinal = actionJsonStr;
|
|
|
bizTestRecordDtlDto.ActionResult = "合格";
|
|
|
StepIndex = 2;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ isActionResult= false;
|
|
|
+ }
|
|
|
|
|
|
break;
|
|
|
case "自动判定":
|
|
@@ -567,111 +560,132 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
break;
|
|
|
case "AND":
|
|
|
case "ONLY":
|
|
|
- int countCond = 0;
|
|
|
- foreach (var item in InConList)
|
|
|
- {
|
|
|
- string plcAddress = item.PlcAddress;
|
|
|
- string plcAddType = item.PlcAddType;
|
|
|
- string plcValue = item.PlcValue;
|
|
|
|
|
|
- switch (plcAddType)
|
|
|
- {
|
|
|
- case "bool":
|
|
|
-
|
|
|
- DialogParameters parm = new DialogParameters();
|
|
|
- parm.Add("Key", plcAddress);
|
|
|
- parm.Add("Key2", plcValue);
|
|
|
- //弹出写入对话框
|
|
|
- _dialog.ShowDialog("WritePLCView", parm, async callback =>
|
|
|
- {
|
|
|
- if (callback.Result == ButtonResult.OK)
|
|
|
- {
|
|
|
- bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
|
|
|
- ///实时值记录
|
|
|
- item.RealValue = plcValue;
|
|
|
- item.TestTime = DateTime.Now;
|
|
|
- if (writeResult)
|
|
|
- {
|
|
|
- ///单个测试项合格
|
|
|
- item.TestResult = "合格";
|
|
|
- countCond++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- item.TestResult = "不合格";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- break;
|
|
|
- case "word":
|
|
|
- DialogParameters parm2 = new DialogParameters();
|
|
|
- parm2.Add("Key", plcAddress);
|
|
|
- parm2.Add("Key2", plcValue);
|
|
|
- //弹出写入对话框
|
|
|
- _dialog.ShowDialog("WritePLCView", parm2, async callback =>
|
|
|
- {
|
|
|
- if (callback.Result == ButtonResult.OK)
|
|
|
- {
|
|
|
- bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Word, plcValue);
|
|
|
- ///实时值记录
|
|
|
- item.RealValue = plcValue;
|
|
|
- item.TestTime = DateTime.Now;
|
|
|
- if (writeResult)
|
|
|
- {
|
|
|
- ///单个测试项合格
|
|
|
- item.TestResult = "合格";
|
|
|
- countCond++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- item.TestResult = "不合格";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- break;
|
|
|
+ isActionResult=SendActionToPLC();
|
|
|
+ break;
|
|
|
+ case "OR":
|
|
|
+ break;
|
|
|
|
|
|
- }
|
|
|
+ case "ORDER":
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //更新测试记录
|
|
|
+ //更新测试记录
|
|
|
+ AddOrEditTesDtltRecord(globalSchDetailId);
|
|
|
+ return isActionResult;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 发送命令给PLC
|
|
|
+ /// </summary>
|
|
|
+ private bool SendActionToPLC()
|
|
|
+ {
|
|
|
+ bool isAction = true;
|
|
|
+ int countCond = 0;
|
|
|
+ foreach (var item in InConList)
|
|
|
+ {
|
|
|
+ string plcAddress = item.PlcAddress;
|
|
|
+ string plcAddType = item.PlcAddType;
|
|
|
+ string plcValue = item.PlcValue;
|
|
|
|
|
|
+ switch (plcAddType)
|
|
|
+ {
|
|
|
+ case "bool":
|
|
|
+
|
|
|
+ DialogParameters parm = new DialogParameters();
|
|
|
+ parm.Add("Key", plcAddress);
|
|
|
+ parm.Add("Key2", plcValue);
|
|
|
+ //弹出写入对话框
|
|
|
+ _dialog.ShowDialog("WritePLCView", parm, async callback =>
|
|
|
+ {
|
|
|
+ if (callback.Result == ButtonResult.OK)
|
|
|
+ {
|
|
|
+ bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
|
|
|
+ ///实时值记录
|
|
|
+ item.RealValue = plcValue;
|
|
|
+ item.TestTime = DateTime.Now;
|
|
|
+ if (writeResult)
|
|
|
+ {
|
|
|
+ ///单个测试项合格
|
|
|
+ item.TestResult = "合格";
|
|
|
+ countCond++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.TestResult = "不合格";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ isAction= false;
|
|
|
}
|
|
|
- //测试记录存入数据库
|
|
|
- //前置项测试结果json转化
|
|
|
- string actionJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
|
|
|
- //json字符串
|
|
|
- bizTestRecordDtlDto.ActionFinal = actionJsonStr;
|
|
|
- //条件满足
|
|
|
- if ((countCond == InConList.Count)&&(countCond!=0))
|
|
|
+
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "word":
|
|
|
+ DialogParameters parm2 = new DialogParameters();
|
|
|
+ parm2.Add("Key", plcAddress);
|
|
|
+ parm2.Add("Key2", plcValue);
|
|
|
+ //弹出写入对话框
|
|
|
+ _dialog.ShowDialog("WritePLCView", parm2, async callback =>
|
|
|
+ {
|
|
|
+ if (callback.Result == ButtonResult.OK)
|
|
|
{
|
|
|
- bizTestRecordDtlDto.ActionResult = "合格";
|
|
|
- StepIndex = 2;
|
|
|
+ bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Word, plcValue);
|
|
|
+ ///实时值记录
|
|
|
+ item.RealValue = plcValue;
|
|
|
+ item.TestTime = DateTime.Now;
|
|
|
+ if (writeResult)
|
|
|
+ {
|
|
|
+ ///单个测试项合格
|
|
|
+ item.TestResult = "合格";
|
|
|
+ countCond++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.TestResult = "不合格";
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- bizTestRecordDtlDto.ActionResult = "不合格";
|
|
|
+ isAction = false;
|
|
|
}
|
|
|
|
|
|
- break;
|
|
|
- case "OR":
|
|
|
- break;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- case "ORDER":
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
}
|
|
|
- //更新测试记录
|
|
|
- UpdateTesDtltRecord();
|
|
|
+ if(!isAction)
|
|
|
+ {
|
|
|
+ return isAction;
|
|
|
+ }
|
|
|
+ //测试记录存入数据库
|
|
|
+ //前置项测试结果json转化
|
|
|
+ string actionJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
|
|
|
+ //json字符串
|
|
|
+ bizTestRecordDtlDto.ActionFinal = actionJsonStr;
|
|
|
+ //条件满足
|
|
|
+ if ((countCond == InConList.Count) && (countCond != 0))
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.ActionResult = "合格";
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.ActionResult = "不合格";
|
|
|
+ }
|
|
|
+ StepIndex = 2;
|
|
|
+ return isAction;
|
|
|
}
|
|
|
- private async void TestJudgementMethod()
|
|
|
+ /// <summary>
|
|
|
+ /// 结果项判定
|
|
|
+ /// </summary>
|
|
|
+ private async Task<bool> TestJudgementMethod()
|
|
|
{
|
|
|
+ bool isJudge = true;
|
|
|
switch (SelectOutJudge)
|
|
|
{
|
|
|
case "人工判定":
|
|
@@ -682,6 +696,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
bizTestRecordDtlDto.JudgementResult = "合格";
|
|
|
StepIndex = 3;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ isJudge = false;
|
|
|
+ }
|
|
|
|
|
|
break;
|
|
|
case "自动判定":
|
|
@@ -689,84 +707,117 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
switch (OutSelectLogic)
|
|
|
{
|
|
|
case "NULL":
|
|
|
+ bizTestRecordDtlDto.JudgementResult = "合格";
|
|
|
+ StepIndex = 3;
|
|
|
break;
|
|
|
case "AND":
|
|
|
case "ONLY":
|
|
|
- int countCond = 0;
|
|
|
- foreach (var item in OutConList)
|
|
|
- {
|
|
|
- string plcAddress = item.PlcAddress;
|
|
|
- string plcAddType = item.PlcAddType;
|
|
|
- string plcValue = item.PlcValue;
|
|
|
+ case "OR":
|
|
|
+ await ReadJudge(OutSelectLogic);
|
|
|
+ break;
|
|
|
+ case "ORDER":
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //更新测试记录
|
|
|
+ //更新测试记录
|
|
|
+ AddOrEditTesDtltRecord(globalSchDetailId);
|
|
|
+ return isJudge;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 读取结果
|
|
|
+ /// </summary>
|
|
|
+ private async Task ReadJudge(String strLogic)
|
|
|
+ {
|
|
|
+ int countCond = 0;
|
|
|
+ foreach (var item in OutConList)
|
|
|
+ {
|
|
|
+ string plcAddress = item.PlcAddress;
|
|
|
+ string plcAddType = item.PlcAddType;
|
|
|
+ string plcValue = item.PlcValue;
|
|
|
+
|
|
|
+ switch (plcAddType)
|
|
|
+ {
|
|
|
|
|
|
- switch (plcAddType)
|
|
|
+ case "bool":
|
|
|
+ DateTime entryTime = DateTime.Now;
|
|
|
+ string readResult = string.Empty;
|
|
|
+ //一直读
|
|
|
+ await Task.Run(async () =>
|
|
|
+ {
|
|
|
+ while (entryTime.AddMilliseconds(10 * 1000) > DateTime.Now)
|
|
|
+ {
|
|
|
+ //显示进度条
|
|
|
+ System.Windows.Application.Current.Dispatcher.Invoke((delegate
|
|
|
{
|
|
|
-
|
|
|
- case "bool":
|
|
|
- DateTime entryTime = DateTime.Now;
|
|
|
- string readResult = string.Empty;
|
|
|
- //一直读
|
|
|
- await Task.Run(async () =>
|
|
|
- {
|
|
|
- while (entryTime.AddMilliseconds(10 * 1000) > DateTime.Now)
|
|
|
- {
|
|
|
- readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
- if (readResult == item.PlcValue)
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
- await Task.Delay(1000);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- ///实时值记录
|
|
|
- item.RealValue = readResult;
|
|
|
- item.TestTime = DateTime.Now;
|
|
|
- if (readResult.Trim() == plcValue?.Trim())
|
|
|
- {
|
|
|
- item.TestResult = "合格";
|
|
|
- countCond++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- item.TestResult = "不合格";
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- case "word":
|
|
|
- break;
|
|
|
+ ProVisibility = Visibility.Visible;
|
|
|
+ }));
|
|
|
|
|
|
+ readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
+ if (readResult == item.PlcValue)
|
|
|
+ {
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- //测试记录存入数据库
|
|
|
- //输出项测试结果json转化
|
|
|
- string prefixJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
|
|
|
- //json字符串
|
|
|
- bizTestRecordDtlDto.JudgementResultFinal = prefixJsonStr;
|
|
|
- //条件满足
|
|
|
- if ((countCond == OutConList.Count)&&(countCond!=0))
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.JudgementResult = "合格";
|
|
|
-
|
|
|
+ await Task.Delay(1000);
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- bizTestRecordDtlDto.JudgementResult = "不合格";
|
|
|
- }
|
|
|
- StepIndex = 3;
|
|
|
- break;
|
|
|
- case "OR":
|
|
|
- break;
|
|
|
+ });
|
|
|
+
|
|
|
+ ProVisibility = Visibility.Hidden;
|
|
|
+ ///实时值记录
|
|
|
+ item.RealValue = readResult;
|
|
|
+ item.TestTime = DateTime.Now;
|
|
|
+ if (readResult.Trim() == plcValue?.Trim())
|
|
|
+ {
|
|
|
+ item.TestResult = "合格";
|
|
|
+ countCond++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.TestResult = "不合格";
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ case "word":
|
|
|
+ break;
|
|
|
|
|
|
- case "ORDER":
|
|
|
- break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ //测试记录存入数据库
|
|
|
+ //输出项测试结果json转化
|
|
|
+ string prefixJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
|
|
|
+ //json字符串
|
|
|
+ bizTestRecordDtlDto.JudgementResultFinal = prefixJsonStr;
|
|
|
+ //条件满足
|
|
|
+ switch(strLogic)
|
|
|
+ {
|
|
|
+ case "AND":
|
|
|
+ case "ONLY":
|
|
|
+ if ((countCond == OutConList.Count) && (countCond != 0))
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.JudgementResult = "合格";
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.JudgementResult = "不合格";
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "OR":
|
|
|
+ if ( countCond != 0)
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.JudgementResult = "合格";
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bizTestRecordDtlDto.JudgementResult = "不合格";
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
- //更新测试记录
|
|
|
- UpdateTesDtltRecord();
|
|
|
+
|
|
|
+ StepIndex = 3;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取配置
|
|
@@ -1052,6 +1103,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
get { return stepIndex; }
|
|
|
set { stepIndex = value; RaisePropertyChanged(); }
|
|
|
}
|
|
|
+
|
|
|
+ private Visibility proVisibility =Visibility.Hidden;
|
|
|
+ public Visibility ProVisibility
|
|
|
+ {
|
|
|
+ get { return proVisibility; }
|
|
|
+ set { proVisibility = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
#endregion
|
|
|
|
|
|
}
|