/// <summary> /// 同步制样计划 /// </summary> /// <param name="output"></param> /// <returns></returns> public void SyncPlan(Action <string, eOutputType> output) { int res = 0; // 集中管控 > 第三方 foreach (InfMakerPlan entity in AutoMakerDAO.GetInstance().GetWaitForSyncMakePlan(this.MachineCode)) { bool isSuccess = false; // 需调整:计划中的煤种、水分、颗粒度等信息视接口而定 EquQZDZYJPlan qZDZYJPlan = this.EquDber.Get <EquQZDZYJPlan>(entity.Id); if (qZDZYJPlan == null) { isSuccess = this.EquDber.Insert(new EquQZDZYJPlan { // 保持相同的Id Id = entity.Id, InFactoryBatchId = entity.InFactoryBatchId, MakeCode = entity.MakeCode, FuelKindName = entity.FuelKindName, //Mt = 0, //CoalSize = 2, DataFlag = 0 }) > 0; } else { qZDZYJPlan.Id = entity.Id; qZDZYJPlan.MakeCode = entity.MakeCode; qZDZYJPlan.FuelKindName = entity.FuelKindName; //qZDZYJPlan.Mt = 0; //qZDZYJPlan.CoalSize = 0; qZDZYJPlan.DataFlag = 0; isSuccess = this.EquDber.Update(qZDZYJPlan) > 0; } if (isSuccess) { entity.SyncFlag = 1; commonDAO.SelfDber.Update(entity); res++; } } output(string.Format("同步制样计划 {0} 条(集中管控 > 第三方)", res), eOutputType.Normal); }
private void CmdHandle(EquQZDZYJCmd input) { Task task = new Task((state) => { EquQZDZYJCmd pDCYJCmd = state as EquQZDZYJCmd; OutputRunInfo(rtxtOutput, "处理命令,命令代码:" + pDCYJCmd.CmdCode + " 制样码:" + pDCYJCmd.MakeCode); if (pDCYJCmd.CmdCode == eEquInfMakerCmd.开始制样.ToString()) { EquQZDZYJPlan pDCYJPlan = this.EquDber.Entity <EquQZDZYJPlan>("where MakeCode=@MakeCode", new { MakeCode = pDCYJCmd.MakeCode }); if (pDCYJPlan != null) { Thread.Sleep(3000); OutputRunInfo(rtxtOutput, "启动制样机"); // 更新系统状态为正在运行 this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.正在运行.ToString() }); // 生成出样记录 foreach (CodeContent codeContent in CommonDAO.GetInstance().GetCodeContentByKind("样品类型")) { this.EquDber.Insert(new EquQZDZYJDetail { BarrelCode = Guid.NewGuid().ToString().Substring(0, 8).ToUpper(), DataFlag = 0, StartTime = DateTime.Now.AddSeconds(3), EndTime = DateTime.Now, MakeCode = pDCYJCmd.MakeCode, MakeUser = "******", YPType = codeContent.Code, YPWeight = 500 }); Thread.Sleep(2000); OutputRunInfo(rtxtOutput, "制出样品:" + codeContent.Code); } // 更新命令 pDCYJCmd.ResultCode = eEquInfCmdResultCode.成功.ToString(); pDCYJCmd.DataFlag = 2; this.EquDber.Update(pDCYJCmd); // 更新系统状态为就绪待机 this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.就绪待机.ToString() }); } else { OutputRunInfo(rtxtOutput, "未找到制样计划,制样码:" + pDCYJCmd.MakeCode); pDCYJCmd.ResultCode = eEquInfCmdResultCode.失败.ToString(); pDCYJCmd.DataFlag = 1; this.EquDber.Update(pDCYJCmd); } } else if (pDCYJCmd.CmdCode == eEquInfMakerCmd.停止制样.ToString()) { Thread.Sleep(3000); OutputRunInfo(rtxtOutput, "停止制样机"); // 更新系统状态为就绪待机 this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.就绪待机.ToString() }); // 更新命令 pDCYJCmd.ResultCode = eEquInfCmdResultCode.成功.ToString(); pDCYJCmd.DataFlag = 2; this.EquDber.Update(pDCYJCmd); } autoResetEvent.Set(); }, input); task.Start(); }