|
@@ -16,6 +16,7 @@ using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using System.Windows;
|
|
|
+using WPFDevelopers.Controls.Runtimes.Shell32;
|
|
|
|
|
|
namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
@@ -28,16 +29,26 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
private readonly IOptionConfigService _optionConfigService;
|
|
|
private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
|
|
|
private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
|
|
|
+ private readonly IBizTestRecordService _iBizTestRecordService;
|
|
|
+ private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly ILogger _logger;
|
|
|
private List<OptionConfigDto> _optionConfigs;
|
|
|
- public ManualTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IMapper mapper)
|
|
|
+
|
|
|
+ private DateTime startTime= DateTime.Now;
|
|
|
+ private DateTime endTime=DateTime.Now;
|
|
|
+ private int testStatus = 0; //测试状态
|
|
|
+ private int testResult = 0; //测试结果
|
|
|
+ private long schDetailId = 0; //测试方案明细ID
|
|
|
+ public ManualTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper)
|
|
|
{
|
|
|
_dialog = dialog;
|
|
|
_aggregator = aggregator;
|
|
|
_optionConfigService = optionConfigService;
|
|
|
_basicPlcTestSchemeService = basicPlcTestSchemeService;
|
|
|
_basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
|
|
|
+ _iBizTestRecordDtlService = iBizTestRecordDtlService;
|
|
|
+ _iBizTestRecordService= iBizTestRecordService;
|
|
|
_mapper = mapper;
|
|
|
//_logger = logger;
|
|
|
CloseCommand = new DelegateCommand(Close);
|
|
@@ -78,7 +89,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
foreach (var item in getMsg)
|
|
|
{
|
|
|
-
|
|
|
+ schDetailId = item; //测试方案明细ID
|
|
|
int id = Convert.ToInt32(item);
|
|
|
//根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
|
|
|
var findEntity = _basicPlcTestSchemeDtlService.Find(id);
|
|
@@ -168,10 +179,70 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
#region 私有发方法
|
|
|
|
|
|
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 完成时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="obj"></param>
|
|
|
private void Done(object obj)
|
|
|
{
|
|
|
-
|
|
|
+ endTime = DateTime.Now;
|
|
|
+ //记录记录主表中是否有这个方案的记录,没有则添加
|
|
|
+ var findRecord = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
|
|
|
+ if(findRecord == null)
|
|
|
+ {
|
|
|
+ //状态status 没有赋值
|
|
|
+ BizTestRecordDto bizTestRecordDto = new BizTestRecordDto();
|
|
|
+ bizTestRecordDto.RecordName = ScheduleName + "_Record";
|
|
|
+ bizTestRecordDto.SchemeName=ScheduleName;
|
|
|
+ bizTestRecordDto.Tester = Appsession.UserName;
|
|
|
+ bizTestRecordDto.StartTestTime = startTime;
|
|
|
+ bizTestRecordDto.FinishTestTime = endTime;
|
|
|
+ bizTestRecordDto.CreateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDto.CreateTime = DateTime.Now;
|
|
|
+ bizTestRecordDto.UpdateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDto.UpdateTime = DateTime.Now;
|
|
|
+ var testRecord = _mapper.Map<BizTestRecordDto, biz_test_record>(bizTestRecordDto);
|
|
|
+ _iBizTestRecordService.Add(testRecord);
|
|
|
+ }
|
|
|
+ //查找record ID
|
|
|
+ long recordId = 0;
|
|
|
+ var findRecordID = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
|
|
|
+ if(findRecordID != null)
|
|
|
+ {
|
|
|
+ recordId = findRecordID.record_id;
|
|
|
+ }
|
|
|
+ testStatus = 1;//测试状态赋值为1
|
|
|
+ //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
+ var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
|
|
|
+ if (findRecordDetail == null)
|
|
|
+ {
|
|
|
+ //状态status 没有赋值
|
|
|
+ BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto();
|
|
|
+ bizTestRecordDtlDto.RecordId= recordId;
|
|
|
+ bizTestRecordDtlDto.SchemeDtlId = schDetailId;
|
|
|
+
|
|
|
+ bizTestRecordDtlDto.StartTestTime = startTime;
|
|
|
+ bizTestRecordDtlDto.FinishTestTime = endTime;
|
|
|
+ bizTestRecordDtlDto.Status = testStatus;
|
|
|
+ bizTestRecordDtlDto.TestResult= testResult;
|
|
|
+ bizTestRecordDtlDto.CreateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDtlDto.CreateTime = DateTime.Now;
|
|
|
+ bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDtlDto.UpdateTime = DateTime.Now;
|
|
|
+ var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
|
|
|
+ _iBizTestRecordDtlService.Add(testRecordDtl);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //如果有,则更新测试状态和测试结果
|
|
|
+ findRecordDetail.start_test_time = startTime;
|
|
|
+ findRecordDetail.finish_test_time = endTime;
|
|
|
+ findRecordDetail.update_by = Appsession.UserName;
|
|
|
+ findRecordDetail.update_time = DateTime.Now;
|
|
|
+ findRecordDetail.status = testStatus;
|
|
|
+ findRecordDetail.test_result = 99;
|
|
|
+ _iBizTestRecordDtlService.Edit(findRecordDetail);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void Next(object obj)
|
|
@@ -189,6 +260,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
/// <param name="obj"></param>
|
|
|
private void Start(object obj)
|
|
|
{
|
|
|
+ //开始时间
|
|
|
+ startTime = DateTime.Now;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -242,78 +315,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 方案明细添加到数据库
|
|
|
- /// </summary>
|
|
|
- private void AddOrEditDetailsToDb(long scheduleId)
|
|
|
- {
|
|
|
- //前置项json转化
|
|
|
- string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
- //输入项json转化
|
|
|
- string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
|
|
|
- //输出项json转化
|
|
|
- string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
|
|
|
- //添加达到测试主表
|
|
|
- //增加测试方案
|
|
|
- BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
|
|
|
- schDtlDto.SchemeId = scheduleId;
|
|
|
- schDtlDto.ItemName = TestName;
|
|
|
-
|
|
|
- schDtlDto.ItemType = SelectTest;
|
|
|
- schDtlDto.Precondition = prefixJsonStr;
|
|
|
- schDtlDto.PreconditionDescribe = BeforeDetail;
|
|
|
- schDtlDto.Action = inJsonStr;
|
|
|
- schDtlDto.ActionDescribe = InDetail;
|
|
|
- schDtlDto.JudgementResult = outJsonStr;
|
|
|
- schDtlDto.JudgementResultDescribe = OutDetail;
|
|
|
- schDtlDto.CreateBy = Appsession.UserName;
|
|
|
- schDtlDto.CreateTime = DateTime.Now;
|
|
|
- schDtlDto.UpdateTime = DateTime.Now;
|
|
|
- schDtlDto.UpdateBy = Appsession.UserName;
|
|
|
- bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
|
|
|
- if (Title == "新增方案")
|
|
|
- {
|
|
|
-
|
|
|
- bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
|
|
|
- if (isAddSucc)
|
|
|
- {
|
|
|
- _logger.Info($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
|
|
|
- MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (Title == "编辑方案")
|
|
|
- {
|
|
|
- //修改 必须给主键SchemeDtlId值
|
|
|
- var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
|
|
|
- if (schDtl != null)
|
|
|
- {
|
|
|
- schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
|
|
|
- bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
|
|
|
- bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
|
|
|
- if (isSucc)
|
|
|
- {
|
|
|
- _logger.Info($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
|
|
|
- MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// mode转json
|
|
|
/// </summary>
|