private void CmdHandle(EquCYGCmd input) { Task task = new Task((state) => { EquCYGCmd pCYGCmd = state as EquCYGCmd; OutputRunInfo(rtxtOutput, "处理命令,命令代码:" + pCYGCmd.CmdCode + " 编码:" + pCYGCmd.SampleCode); Thread.Sleep(5000); pCYGCmd.ResultCode = 1; pCYGCmd.FinishTime = DateTime.Now; pCYGCmd.DataFlag = 1; this.EquDber.Update(pCYGCmd); OutputRunInfo(rtxtOutput, "取样成功,编码:" + pCYGCmd.SampleCode); EquCYGSample equcygsample = this.EquDber.Entity <EquCYGSample>(" where SampleCode='" + pCYGCmd.SampleCode + "'"); if (equcygsample != null) { equcygsample.SampleCode = ""; equcygsample.DataFlag = 0; this.EquDber.Update(equcygsample); } OutputRunInfo(rtxtOutput, "清理样柜成功,编码:" + pCYGCmd.SampleCode); autoResetEvent.Set(); }, input); task.Start(); }
private void CreateMainTask() { taskSimpleScheduler = new TaskSimpleScheduler(); autoResetEvent.Reset(); taskSimpleScheduler.StartNewTask("模拟业务", () => { if (!this.IsStartSimulator) { return; } // 心跳 this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquCYGSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = GlobalVars.EquHeartbeatName, TagValue = DateTime.Now.ToString() }); // 控制命令 EquCYGCmd pCYGCmd = this.EquDber.Entity <EquCYGCmd>("where DataFlag=0 order by CreateDate desc"); if (pCYGCmd != null) { CmdHandle(pCYGCmd); autoResetEvent.WaitOne(); } }, 3000); }
/// <summary> /// 连锁确定存样柜 /// </summary> /// <param name="czplx"></param> /// <param name="yplx"></param> /// <returns></returns> private bool AutoCheckSentInfCYGBill(InfCYGControlCMDDetail cmcscygcontrolcmddetail, Action <string, eOutputType> output) { bool returnvalue = false; if (cmcscygcontrolcmddetail.Status == "正在处理") { EquCYGCmd equcygcmd = new EquCYGCmd(); EquCYGSample equcygsample = this.EquDber.Entity <EquCYGSample>(" where SampleCode='" + cmcscygcontrolcmddetail.MakeCode + "'"); if (equcygsample == null) { cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString(); cmcscygcontrolcmddetail.Status = "处理完成"; cmcscygcontrolcmddetail.Errors = "存样柜无此样:请处理!"; returnvalue = false; } else { equcygcmd.MachineCode = equcygsample.MachineCode; equcygcmd.SampleCode = cmcscygcontrolcmddetail.MakeCode; cmcscygcontrolcmddetail.Status = "等待结果"; if (this.EquDber.Insert(equcygcmd) > 0 && Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail) > 0) { returnvalue = true; output(string.Format("成功发送命令等待结果" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal); } } } if (cmcscygcontrolcmddetail.Status == "等待结果") { EquCYGCmd equcygcmds = this.EquDber.Entity <EquCYGCmd>(String.Format(" where SampleCode='{0}' order by createdate desc", cmcscygcontrolcmddetail.MakeCode)); if (equcygcmds.ResultCode == 1) { cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString(); cmcscygcontrolcmddetail.Status = "处理完成"; Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail); output(string.Format("取样成功" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal); } else if (equcygcmds.ResultCode == 2) { cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString(); cmcscygcontrolcmddetail.Status = "处理完成"; cmcscygcontrolcmddetail.Errors = "存样柜系统异常:请处理!"; Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail); output(string.Format("取样失败" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal); } else if (DateTime.Now - equcygcmds.CreateDate > TimeSpan.FromMinutes(15)) { cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString(); cmcscygcontrolcmddetail.Status = "处理完成"; cmcscygcontrolcmddetail.Errors = "存样柜超时异常:请处理!"; Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail); output(string.Format("取样失败" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal); } } return(returnvalue); }