|
@@ -239,6 +239,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
}
|
|
|
testStatus = 99;//测试状态赋值为99
|
|
|
//状态status 没有赋值
|
|
|
+
|
|
|
|
|
|
bizTestRecordDtlDto.RecordId = recordId;
|
|
|
bizTestRecordDtlDto.SchemeDtlId = schDetailId;
|
|
@@ -246,7 +247,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
bizTestRecordDtlDto.FinishTestTime = endTime;
|
|
|
bizTestRecordDtlDto.TestMode = TestMode;
|
|
|
bizTestRecordDtlDto.Status = testStatus;
|
|
|
- bizTestRecordDtlDto.TestResult = testResult;
|
|
|
+ bizTestRecordDtlDto.TestResult = GetTestResult();
|
|
|
bizTestRecordDtlDto.CreateBy = Appsession.UserName;
|
|
|
bizTestRecordDtlDto.CreateTime = DateTime.Now;
|
|
|
bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
|
|
@@ -271,7 +272,39 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private int GetTestResult()
|
|
|
+ {
|
|
|
+
|
|
|
+ foreach(var item in BeforeConList)
|
|
|
+ {
|
|
|
+ if (item.TestResult == "不合格")
|
|
|
+ {
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ foreach(var item in InConList)
|
|
|
+ {
|
|
|
+ if(item.TestResult=="不合格")
|
|
|
+ {
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach (var item in OutConList)
|
|
|
+ {
|
|
|
+ if (item.TestResult == "不合格")
|
|
|
+ {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 更新测试记录
|
|
|
+ /// </summary>
|
|
|
private void UpdateTesDtltRecord()
|
|
|
{
|
|
|
|
|
@@ -312,8 +345,6 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -322,7 +353,33 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
private void Previous(object obj)
|
|
|
{
|
|
|
+ StepIndex = 0;
|
|
|
+ ///查找方案下的所有方案明细,并排序,
|
|
|
+ var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.scheme_dtl_id);
|
|
|
+ foreach (var item in basicSchDtls)
|
|
|
+ {
|
|
|
+ //在测试结果明细中查看
|
|
|
+ long schDetailId = item.scheme_dtl_id;
|
|
|
+ if (schDetailId< globalSchDetailId)
|
|
|
+ {
|
|
|
+ globalSchDetailId = schDetailId;
|
|
|
+ int id = Convert.ToInt32(schDetailId);
|
|
|
+ //界面显示
|
|
|
+ GetDetailInfo(id);
|
|
|
+ //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
+ var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
|
|
|
+ if (findRecordDetail == null)
|
|
|
+ {
|
|
|
|
|
|
+ //增加测试记录明细
|
|
|
+ AddTesDtltRecord(globalSchDetailId);
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 开始检测
|
|
@@ -334,19 +391,29 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
startTime = DateTime.Now;
|
|
|
//增加测试记录主表
|
|
|
AddTestRecord();
|
|
|
- //增加测试记录明细表
|
|
|
- AddTesDtltRecord(globalSchDetailId);
|
|
|
+
|
|
|
//前置项
|
|
|
TestPreceditionMethod();
|
|
|
- MessageBox.Show("前置项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ //MessageBox.Show("前置项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
//输入项
|
|
|
TestActionMethod();
|
|
|
- MessageBox.Show("输入项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ //MessageBox.Show("输入项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
//输出项
|
|
|
TestJudgementMethod();
|
|
|
- MessageBox.Show("输出项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ //MessageBox.Show("输出项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
|
|
|
+ //增加测试记录明细表
|
|
|
+ AddTesDtltRecord(globalSchDetailId);
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 更新测试结果
|
|
|
+ /// </summary>
|
|
|
+ private void UpdateTestRecord()
|
|
|
+ {
|
|
|
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 测试前置项目
|
|
|
+ /// </summary>
|
|
|
private void TestPreceditionMethod()
|
|
|
{
|
|
|
switch (BeforeSelectJudge)
|
|
@@ -379,9 +446,9 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
switch (plcAddType)
|
|
|
{
|
|
|
case "bool":
|
|
|
- // string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
+ string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
///实时值记录
|
|
|
- string readResult = "1";
|
|
|
+
|
|
|
item.RealValue = readResult;
|
|
|
item.TestTime = DateTime.Now;
|
|
|
if (readResult.Trim() == plcValue.Trim())
|
|
@@ -419,7 +486,56 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
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 = "不合格";
|
|
|
+ }
|
|
|
+
|
|
|
break;
|
|
|
+
|
|
|
|
|
|
case "ORDER":
|
|
|
break;
|
|
@@ -470,9 +586,9 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
if (callback.Result == ButtonResult.OK)
|
|
|
{
|
|
|
- // bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
|
|
|
+ bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
|
|
|
///实时值记录
|
|
|
- bool writeResult = true;
|
|
|
+
|
|
|
item.TestTime = DateTime.Now;
|
|
|
if (writeResult)
|
|
|
{
|
|
@@ -493,6 +609,34 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
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.TestTime = DateTime.Now;
|
|
|
+ if (writeResult)
|
|
|
+ {
|
|
|
+ ///单个测试项合格
|
|
|
+ item.TestResult = "合格";
|
|
|
+ countCond++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.TestResult = "不合格";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
break;
|
|
|
|
|
|
}
|
|
@@ -559,12 +703,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
|
|
|
case "bool":
|
|
|
- //string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
- string readResult = "1";
|
|
|
+ string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
|
|
|
///实时值记录
|
|
|
item.RealValue = readResult;
|
|
|
item.TestTime = DateTime.Now;
|
|
|
- if (readResult.Trim() == plcValue.Trim())
|
|
|
+ if (readResult.Trim() == plcValue?.Trim())
|
|
|
{
|
|
|
item.TestResult = "合格";
|
|
|
countCond++;
|