/// <summary> /// 同步存样柜执行结果 /// </summary> /// <param name="output"></param> /// <returns></returns> public int SyncCYGResult(Action <string, eOutputType> output) { int res = 0; foreach (Tb_PreAction item in this.EquDber.Entities <Tb_PreAction>("where DoneState=2 or DoneState=3 order by Sample_Id desc")) { InfCYGControlCMDDetail cygdetail = Dbers.GetInstance().SelfDber.Entity <InfCYGControlCMDDetail>("where MakeCode=:MakeCode and MachineCode=:MachineCode order by CreateDate desc", new { MakeCode = item.Sample_Id, MachineCode = KYMachineToData(item.SSName) }); if (cygdetail == null) { continue; } if (item.DoneState == 2) { cygdetail.ResultCode = eEquInfCmdResultCode.失败.ToString(); } else if (item.DoneState == 3) { cygdetail.ResultCode = eEquInfCmdResultCode.成功.ToString(); } cygdetail.Status = "1"; if (Dbers.GetInstance().SelfDber.Update(cygdetail) > 0) { res++; } //给主表的status赋值 0 默认 1成功 2 失败 } output(string.Format("同步存样柜命令结果:{0}条)", res), eOutputType.Normal); return(res); }
/// <summary> /// 添加存样柜命令 /// </summary> /// <param name="MakeCodes">制样码</param> /// <param name="OperType">操作类型 存样 取样</param> /// <param name="eopstart">操作人</param> /// <returns></returns> public String AddAutoCupboard(List <String> MakeCodes, String OperType, string OperUser, string machineCode) { InfCYGControlCMD cmcscygcontrolcmd = new InfCYGControlCMD(); int newbill = 1; try { newbill = Convert.ToInt32(Dbers.GetInstance().SelfDber.Entities <InfCYGControlCMD>(" where Bill like '" + "CYG" + DateTime.Now.ToString("yyMMdd") + "%'").Max(a => a.Bill).Substring(9, 3)) + 1; } catch (Exception) { } cmcscygcontrolcmd.Bill = "CYG" + DateTime.Now.ToString("yyMMdd") + newbill.ToString().PadLeft(3, '0'); cmcscygcontrolcmd.DataFlag = 0; cmcscygcontrolcmd.OperType = OperType; cmcscygcontrolcmd.OperPerson = OperUser; cmcscygcontrolcmd.CanWorking = "0"; cmcscygcontrolcmd.MachineCode = machineCode; Dbers.GetInstance().SelfDber.Insert(cmcscygcontrolcmd); foreach (string item in MakeCodes) { InfCYGControlCMDDetail cmcscygcontrolcmddetail = new InfCYGControlCMDDetail(); cmcscygcontrolcmddetail.CYGControlCMDId = cmcscygcontrolcmd.Id; cmcscygcontrolcmddetail.MakeCode = item; cmcscygcontrolcmddetail.MachineCode = machineCode; cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString(); cmcscygcontrolcmddetail.Status = "0"; cmcscygcontrolcmddetail.Bolt_Id = ""; Dbers.GetInstance().SelfDber.Insert(cmcscygcontrolcmddetail); } return(cmcscygcontrolcmd.Id); }
/// <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); }
/// <summary> /// 获取存样柜执行结果 /// </summary> /// <param name="makeCode"></param> /// <returns></returns> public eEquInfCmdResultCode GetAutoCupboardResult(string makeCode) { eEquInfCmdResultCode equInfCmdResult = eEquInfCmdResultCode.默认; InfCYGControlCMDDetail cmdDetail = Dbers.GetInstance().SelfDber.Entity <InfCYGControlCMDDetail>("where MakeCode=:MakeCode order by createdate desc", new { MakeCode = makeCode }); if (cmdDetail != null) { Enum.TryParse(cmdDetail.ResultCode, out equInfCmdResult); } return(equInfCmdResult); }
/// <summary> /// 获取制样样品传输状态 /// </summary> /// <param name="barrelcode">样瓶编码</param> /// <returns></returns> public string GetMakerRecordStatusByBarrelCode(string barrelcode) { InfCYGControlCMDDetail entity = Dbers.GetInstance().SelfDber.Entity <InfCYGControlCMDDetail>("where code=:BarrelCode order by CreateDate desc", new { BarrelCode = barrelcode }); if (entity != null) { if (entity.Status != null) { return(entity.Status); } } return(""); }