/// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #4
0
        /// <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("");
        }