Beispiel #1
0
        private void CreateMainTask()
        {
            taskSimpleScheduler = new TaskSimpleScheduler();

            autoResetEvent.Reset();

            taskSimpleScheduler.StartNewTask("模拟业务", () =>
            {
                if (!this.IsStartSimulator)
                {
                    return;
                }

                // 心跳
                this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = GlobalVars.EquHeartbeatName, TagValue = DateTime.Now.ToString() });
                // 更新采样计划
                this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJPlan>() + " set DataFlag=1 where DataFlag=0");

                // 控制命令
                EquQZDZYJCmd pDCYJCmd = this.EquDber.Entity <EquQZDZYJCmd>("where DataFlag=0 order by CreateDate desc");
                if (pDCYJCmd != null)
                {
                    CmdHandle(pDCYJCmd);

                    autoResetEvent.WaitOne();
                }
            }, 3000);
        }
Beispiel #2
0
        /// <summary>
        /// 获取未读第三方设备故障信息
        /// </summary>
        /// <param name="machineCode">设备编码</param>
        /// <returns></returns>
        public List <InfEquInfHitch> GetUnReadEquInfHitchs(string machineCode)
        {
            List <InfEquInfHitch> res = SelfDber.Entities <InfEquInfHitch>("where MachineCode=:machineCode and DataFlag=0", new { MachineCode = machineCode });

            SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <InfEquInfHitch>() + " set DataFlag=1 where MachineCode=:machineCode and DataFlag=0", new { MachineCode = machineCode });
            return(res);
        }
Beispiel #3
0
        /// <summary>
        /// 根据实体创建动态参数
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t">实体</param>
        /// <returns></returns>
        protected DynamicParameters CreateDynamicParameters <T>(T t)
        {
            DynamicParameters res = new DynamicParameters();

            foreach (PropertyInfo pi in typeof(T).GetProperties())
            {
                if (EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperIgnoreAttribute)))
                {
                    continue;
                }

                if (pi.PropertyType == typeof(DateTime))
                {
                    if (Convert.ToDateTime(pi.GetValue(t, null)).Year < 2000)
                    {
                        res.Add(pi.Name, null);
                    }
                    else
                    {
                        //格式化微秒 防止6.0平台错误,同时7.0时间可为空
                        res.Add(pi.Name, DateTime.Parse(Convert.ToDateTime(pi.GetValue(t, null)).ToString("yyyy-MM-dd HH:mm:ss")));
                    }
                }
                else
                {
                    res.Add(pi.Name, pi.GetValue(t, null));
                }
            }

            return(res);
        }
Beispiel #4
0
        /// <summary>
        /// 将指定车的未完结运输记录强制更改为无效
        /// </summary>
        /// <param name="autotruckId">车Id</param>
        public void ChangeUnFinishTransportToInvalid(string autotruckId)
        {
            if (string.IsNullOrEmpty(autotruckId))
            {
                return;
            }

            foreach (CmcsUnFinishTransport unFinishTransport in SelfDber.Entities <CmcsUnFinishTransport>("where AutotruckId=:AutotruckId", new { AutotruckId = autotruckId }))
            {
                if (unFinishTransport.CarType == eTransportType.原料煤入场.ToString() || unFinishTransport.CarType == eTransportType.仓储煤入场.ToString() || unFinishTransport.CarType == eTransportType.中转煤入场.ToString())
                {
                    SelfDber.Execute("Update " + EntityReflectionUtil.GetTableName <CmcsBuyFuelTransport>() + " set IsUse=0 where Id=:Id", new { Id = unFinishTransport.TransportId });
                    SelfDber.Delete <CmcsUnFinishTransport>(unFinishTransport.Id);
                }
                if (unFinishTransport.CarType == eTransportType.销售直销煤.ToString() || unFinishTransport.CarType == eTransportType.销售掺配煤.ToString() || unFinishTransport.CarType == eTransportType.仓储煤出场.ToString() || unFinishTransport.CarType == eTransportType.中转煤出场.ToString())
                {
                    SelfDber.Execute("Update " + EntityReflectionUtil.GetTableName <CmcsSaleFuelTransport>() + " set IsUse=0 where Id=:Id", new { Id = unFinishTransport.TransportId });
                    SelfDber.Delete <CmcsUnFinishTransport>(unFinishTransport.Id);
                }
                if (unFinishTransport.CarType == eTransportType.其他物资.ToString())
                {
                    SelfDber.Execute("Update " + EntityReflectionUtil.GetTableName <CmcsGoodsTransport>() + " set IsUse=0 where Id=:Id", new { Id = unFinishTransport.TransportId });
                    SelfDber.Delete <CmcsUnFinishTransport>(unFinishTransport.Id);
                }
                if (unFinishTransport.CarType == eTransportType.来访车辆.ToString())
                {
                    SelfDber.Execute("Update " + EntityReflectionUtil.GetTableName <CmcsVisitTransport>() + " set IsUse=0 where Id=:Id", new { Id = unFinishTransport.TransportId });
                    SelfDber.Delete <CmcsUnFinishTransport>(unFinishTransport.Id);
                }
            }
        }
Beispiel #5
0
 /// <summary>
 /// 重置所有接口表
 /// </summary>
 void ResetAll()
 {
     dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJPlan>() + " set DataFlag=3");
     dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJCmd>() + " set DataFlag=3");
     dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJUnloadCmd>() + " set DataFlag=3");
     dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJBarrel>() + " set SampleCode='',InFactoryBatchId='',SampleCount=0,BarrelStatus='" + eSampleBarrelStatus.空桶.ToString() + "'");
 }
Beispiel #6
0
        /// <summary>
        /// 根据实体创建动态参数
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t">实体</param>
        /// <returns></returns>
        protected DynamicParameters CreateDynamicParameters <T>(T t)
        {
            DynamicParameters res = new DynamicParameters();

            foreach (PropertyInfo pi in typeof(T).GetProperties())
            {
                if (EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperIgnoreAttribute)))
                {
                    continue;
                }

                //if (pi.PropertyType == typeof(DateTime))
                //{
                //	//7.0 时间可为空
                //	if (Convert.ToDateTime(pi.GetValue(t, null)).Year < 2000)
                //		res.Add(pi.Name, null);
                //	else
                //		res.Add(pi.Name, pi.GetValue(t, null));
                //}
                //else
                res.Add(pi.Name, pi.GetValue(t, null));
            }

            return(res);
        }
        /// <summary>
        /// 发送制样计划,并发送开始制样命令
        /// </summary>
        public bool SaveMakerPlanAndStartCmd(InfMakerPlan entity, out string message)
        {
            try
            {
                message = "制样计划发送成功";
                if (Dbers.GetInstance().SelfDber.Insert <InfMakerPlan>(entity) > 0)
                {
                    InfMakerControlCmd makerControlCmd = new InfMakerControlCmd();
                    makerControlCmd.InterfaceType = CommonDAO.GetInstance().GetMachineInterfaceTypeByCode(entity.MachineCode);
                    makerControlCmd.MachineCode   = entity.MachineCode;
                    makerControlCmd.MakeCode      = entity.MakeCode;
                    makerControlCmd.ResultCode    = eEquInfCmdResultCode.默认.ToString();
                    makerControlCmd.CmdCode       = eEquInfMakerCmd.开始制样.ToString();
                    makerControlCmd.SyncFlag      = 0;
                    Dbers.GetInstance().SelfDber.Insert <InfMakerControlCmd>(makerControlCmd);

                    // 修改入厂煤制样记录的开始制样时间
                    Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCMake>() + " set GetPle='自动接样',GetDate=:DtNow,MakeStartTime=:DtNow where MakeCode=:MakeCode", new { DtNow = DateTime.Now, MakeCode = entity.MakeCode });

                    return(true);
                }
                message = "制样计划发送失败";
                return(false);
            }
            catch (Exception ex)
            {
                message = "制样计划发送失败" + ex.Message;
                return(false);
            }
        }
Beispiel #8
0
        private void btnSystemStatus_FSGZ_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(cmbBeltSampler.Text))
            {
                return;
            }

            OutputRunInfo(rtxtOutput, "系统状态更改为" + eEquInfSamplerSystemStatus.发生故障.ToString());
            dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJSignal>() + " set TagValue=@TagValue where MachineCode=@MachineCode and TagName=@TagName", new { MachineCode = (cmbBeltSampler.SelectedIndex + 1).ToString(), TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.发生故障.ToString() });
        }
Beispiel #9
0
 /// <summary>
 /// 记录样桶校验记录
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public bool UpdateRCSampleBarrelCheckSampleWeight(string rCSampleBarrelId, decimal weight, string user)
 {
     if (weight > 0)
     {
         return(Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCSampleBarrel>() + " set CheckSampleWeight=:CheckSampleWeight,CheckDate=sysdate,CheckUser=:CheckUser,SampleWeight=(:CheckSampleWeight-BarrelWeight) where Id=:Id", new { CheckSampleWeight = weight, CheckUser = user, Id = rCSampleBarrelId }) > 0);
     }
     else
     {
         return(Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCSampleBarrel>() + " set CheckDate=sysdate,CheckUser=:CheckUser where Id=:Id", new { CheckUser = user, Id = rCSampleBarrelId }) > 0);
     }
 }
Beispiel #10
0
        private void CmdHandle(EquPDCYJUnloadCmd input)
        {
            Task task = new Task((state) =>
            {
                EquPDCYJUnloadCmd pDCYJUnloadCmd = state as EquPDCYJUnloadCmd;
                OutputRunInfo(rtxtOutput, "处理卸样命令,采样码:" + pDCYJUnloadCmd.SampleCode);

                // 更新系统状态为正在卸样
                dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJSignal>() + " set TagValue=@TagValue where MachineCode=@MachineCode and TagName=@TagName", new { MachineCode = pDCYJUnloadCmd.MachineCode, TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.正在卸样.ToString() });
                Thread.Sleep(3000);

                foreach (EquPDCYJBarrel pDCYJBarrel in dber.Entities <EquPDCYJBarrel>("where SampleCode=@SampleCode", new { SampleCode = pDCYJUnloadCmd.SampleCode }))
                {
                    // 生成卸样结果
                    dber.Insert(new EquPDCYJUnloadResult
                    {
                        DataFlag   = 0,
                        SampleCode = pDCYJUnloadCmd.SampleCode,
                        UnloadTime = DateTime.Now,
                        //BarrelNumber = pDCYJBarrel.BarrelNumber,
                        BarrelCode = Guid.NewGuid().ToString().Substring(0, 8).ToUpper(),
                        //SamplingId = pDCYJUnloadCmd.SamplingId,
                        MachineCode = pDCYJBarrel.MachineCode
                    });

                    pDCYJBarrel.SampleCount      = 0;
                    pDCYJBarrel.InFactoryBatchId = string.Empty;
                    pDCYJBarrel.SampleCode       = string.Empty;
                    pDCYJBarrel.BarrelStatus     = eSampleBarrelStatus.空桶.ToString();
                    pDCYJBarrel.UpdateTime       = DateTime.Now;
                    pDCYJBarrel.DataFlag         = 0;

                    if (dber.Update(pDCYJBarrel) > 0)
                    {
                        OutputRunInfo(rtxtOutput, "卸样完成,罐号:" + pDCYJBarrel.BarrelNumber.ToString() + "  " + pDCYJBarrel.BarrelType.ToString());
                    }

                    Thread.Sleep(1500);
                }

                // 更新命令
                pDCYJUnloadCmd.ResultCode = eEquInfCmdResultCode.成功.ToString();
                pDCYJUnloadCmd.DataFlag   = 2;
                dber.Update(pDCYJUnloadCmd);

                OutputRunInfo(rtxtOutput, "卸样完成");

                autoResetEvent.Set();
            }, input);

            task.Start();
        }
Beispiel #11
0
        /// <summary>
        /// 生成 UPDATE 语句
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public virtual string Update <T>() where T : class
        {
            StringBuilder strbRes1 = new StringBuilder("UPDATE " + EntityReflectionUtil.GetTableName <T>() + " SET ");

            foreach (PropertyInfo pi in typeof(T).GetProperties())
            {
                if (EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperPrimaryKeyAttribute)) || EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperIgnoreAttribute)) || EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperPrimaryKeyAddAttribute)))
                {
                    continue;
                }
                strbRes1.AppendFormat("{0}={1}{0},", pi.Name, this.paramPrefix);
            }

            return(string.Format("{0} WHERE {1}={2}{1} ", strbRes1.ToString().TrimEnd(','), EntityReflectionUtil.GetPrimaryKey <T>(), this.paramPrefix));
        }
Beispiel #12
0
        /// <summary>
        /// 检查实体DateTime的合法性
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        public void CheckEntityDateTime <T>(T t) where T : class
        {
            foreach (PropertyInfo pi in typeof(T).GetProperties().Where(a => a.PropertyType == typeof(DateTime)))
            {
                if (EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperIgnoreAttribute)))
                {
                    continue;
                }

                DateTime dt = (DateTime)pi.GetValue(t, null);
                if (dt == DateTime.MinValue)
                {
                    pi.SetValue(t, System.Data.SqlTypes.SqlDateTime.MinValue.Value, null);
                }
            }
        }
Beispiel #13
0
        /// <summary>
        /// 设置实时信号
        /// </summary>
        /// <param name="signalPrefix">信号前缀</param>
        /// <param name="signalName">信号名</param>
        /// <param name="signalValue">值</param>
        /// <returns></returns>
        public bool SetSignalDataValue(string signalPrefix, string signalName, string signalValue)
        {
            CmcsSignalData cmcsSignalData = SelfDber.Entity <CmcsSignalData>("where SignalPrefix=:SignalPrefix and SignalName=:SignalName order by UpdateTime desc", new { SignalPrefix = signalPrefix, SignalName = signalName });

            if (cmcsSignalData == null)
            {
                SelfDber.Insert(new CmcsSignalData
                {
                    SignalPrefix = signalPrefix,
                    SignalName   = signalName,
                    SignalValue  = signalValue,
                    UpdateTime   = DateTime.Now
                });
            }

            return(SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsSignalData>() + " set SignalValue=:SignalValue,UpdateTime=sysdate where SignalPrefix=:SignalPrefix and  SignalName=:SignalName", new { SignalPrefix = signalPrefix, SignalName = signalName, SignalValue = signalValue }) > 0);
        }
Beispiel #14
0
        /// <summary>
        /// 生成 INSERT 语句
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public virtual string Insert <T>() where T : class
        {
            StringBuilder strbRes1 = new StringBuilder("INSERT INTO " + EntityReflectionUtil.GetTableName <T>() + "(");
            StringBuilder strbRes2 = new StringBuilder("VALUES(");

            foreach (PropertyInfo pi in typeof(T).GetProperties())
            {
                if (EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperIgnoreAttribute)) || EntityReflectionUtil.HasPropertyInfoAttribute(pi, typeof(DapperPrimaryKeyAddAttribute)))
                {
                    continue;
                }

                strbRes1.AppendFormat("{0},", pi.Name);
                strbRes2.AppendFormat("{1}{0},", pi.Name, this.paramPrefix);
            }

            return(string.Format("{0}) {1})", strbRes1.ToString().TrimEnd(','), strbRes2.ToString().TrimEnd(',')));
        }
        /// <summary>
        /// 改变火车入厂记录记录的翻车状态
        /// </summary>
        /// <param name="trainWeightRecordId">火车入厂记录Id</param>
        /// <param name="trainTipperTurnoverStatus">翻车状态</param>
        /// <returns></returns>
        public bool ChangeTrainWeightRecordIsTurnover(string trainWeightRecordId, eTrainTipperTurnoverStatus trainTipperTurnoverStatus)
        {
            CmcsTrainWeightRecord trainWeightRecord = Dbers.GetInstance().SelfDber.Get <CmcsTrainWeightRecord>(trainWeightRecordId);

            if (trainWeightRecord != null)
            {
                if (trainTipperTurnoverStatus == eTrainTipperTurnoverStatus.已翻)
                {
                    trainWeightRecord.UnloadTime = DateTime.Now;

                    // 修改批次明细的卸车时间
                    Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsTransport>() + " set UnloadTime=sysdate where PKID=:PKID", new { PKID = trainWeightRecord.Id });
                }

                trainWeightRecord.IsTurnover = trainTipperTurnoverStatus.ToString();
                return(Dbers.GetInstance().SelfDber.Update(trainWeightRecord) > 0);
            }

            return(false);
        }
Beispiel #16
0
        /// <summary>
        /// 更改其他物资运输记录的无效状态
        /// </summary>
        /// <param name="transportId"></param>
        /// <param name="isValid">是否有效</param>
        /// <returns></returns>
        public bool ChangeGoodsTransportToInvalid(string transportId, bool isValid)
        {
            if (isValid)
            {
                // 设置为有效
                CmcsGoodsTransport buyFuelTransport = SelfDber.Get <CmcsGoodsTransport>(transportId);
                if (buyFuelTransport != null)
                {
                    if (SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsGoodsTransport>() + " set IsUse=1 where Id=:Id", new { Id = transportId }) > 0)
                    {
                        if (buyFuelTransport.IsFinish == 0)
                        {
                            SelfDber.Insert(new CmcsUnFinishTransport
                            {
                                AutotruckId = buyFuelTransport.AutotruckId,
                                CarType     = eCarType.其他物资.ToString(),
                                TransportId = buyFuelTransport.Id,
                                PrevPlace   = "未知"
                            });
                        }

                        return(true);
                    }
                }
            }
            else
            {
                // 设置为无效

                if (SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsGoodsTransport>() + " set IsUse=0 where Id=:Id", new { Id = transportId }) > 0)
                {
                    SelfDber.DeleteBySQL <CmcsUnFinishTransport>("where TransportId=:TransportId", new { TransportId = transportId });

                    return(true);
                }
            }

            return(false);
        }
Beispiel #17
0
 private void btnSystemStatus_FSGZ_Click(object sender, EventArgs e)
 {
     OutputRunInfo(rtxtOutput, "系统状态更改为" + eEquInfSamplerSystemStatus.发生故障.ToString());
     this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.发生故障.ToString() });
 }
Beispiel #18
0
 /// <summary>
 /// 获取未完成的其他物资运输记录
 /// </summary>
 /// <returns></returns>
 public List <CmcsGoodsTransport> GetUnFinishGoodsTransport()
 {
     return(SelfDber.Entities <CmcsGoodsTransport>("where SuttleWeight=0 and IsUse=1 and Id in (select TransportId from " + EntityReflectionUtil.GetTableName <CmcsUnFinishTransport>() + " where CarType=:CarType) order by InFactoryTime desc", new { CarType = eCarType.其他物资.ToString() }));
 }
Beispiel #19
0
 /// <summary>
 /// 将所有上次提醒数据置换为已处理
 /// </summary>
 public void ResetAllSysMessageStatus()
 {
     SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsSysMessage>() + " t set t.MsgStatus=:MsgStatus1 where t.MsgStatus=:MsgStatus1", new { MsgStatus1 = eSysMessageStatus.处理中.ToString(), MsgStatus2 = eSysMessageStatus.处理中.ToString() });
 }
 /// <summary>
 /// 更新制样明细记录的样重和样罐编码
 /// </summary>
 /// <param name="rCMakeDetailId">制样明细记录Id</param>
 /// <param name="weight">重量</param>
 /// <param name="barrelCode">样罐编码</param>
 /// <returns></returns>
 public bool UpdateMakeDetailWeightAndBarrelCode(string rCMakeDetailId, double weight, string barrelCode)
 {
     return(Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCMakeDetail>() + " set SampleWeight=:SampleWeight,SampleCode=:SampleCode where Id=:Id", new { Id = rCMakeDetailId, SampleWeight = weight, SampleCode = barrelCode }) > 0);
 }
 /// <summary>
 /// 更新制样明细记录的校验样重
 /// </summary>
 /// <param name="rCMakeDetailId">制样明细记录Id</param>
 /// <param name="weight">重量</param>
 /// <returns></returns>
 public bool UpdateMakeDetailCheckWeight(string rCMakeDetailId, double weight)
 {
     return(Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCMakeDetail>() + " set CheckWeight=:CheckWeight where Id=:Id", new { Id = rCMakeDetailId, CheckWeight = weight }) > 0);
 }
Beispiel #22
0
        private void CmdHandle(EquPDCYJCmd input)
        {
            Task task = new Task((state) =>
            {
                EquPDCYJCmd pDCYJCmd = state as EquPDCYJCmd;
                OutputRunInfo(rtxtOutput, "处理命令,命令代码:" + pDCYJCmd.CmdCode + "  采样码:" + pDCYJCmd.SampleCode);

                if (pDCYJCmd.CmdCode == eEquInfSamplerCmd.开始采样.ToString())
                {
                    EquPDCYJPlan pDCYJPlan = dber.Entity <EquPDCYJPlan>("where SampleCode=@SampleCode", new { SampleCode = pDCYJCmd.SampleCode });
                    if (pDCYJPlan != null)
                    {
                        Thread.Sleep(3000);
                        OutputRunInfo(rtxtOutput, "启动采样机");
                        // 更新系统状态为正在运行
                        dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJSignal>() + " set TagValue=@TagValue where MachineCode=@MachineCode and TagName=@TagName", new { MachineCode = pDCYJCmd.MachineCode, TagName = eSignalDataName.设备状态.ToString(), TagValue = eEquInfSamplerSystemStatus.正在运行.ToString() });

                        // 更新集样罐
                        dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJBarrel>() + " set IsCurrent=0 where MachineCode=@MachineCode and BarrelType=@BarrelType", new { MachineCode = pDCYJCmd.MachineCode, BarrelType = pDCYJPlan.GatherType });
                        EquPDCYJBarrel pDCYJBarrel = dber.Entity <EquPDCYJBarrel>("where MachineCode=@MachineCode and SampleCode=@SampleCode and BarrelType=@BarrelType and SampleCount<3", new { MachineCode = pDCYJCmd.MachineCode, SampleCode = pDCYJCmd.SampleCode, BarrelType = pDCYJPlan.GatherType });
                        if (pDCYJBarrel == null)
                        {
                            pDCYJBarrel = dber.Entity <EquPDCYJBarrel>("where MachineCode=@MachineCode and SampleCode='' and BarrelType=@BarrelType", new { MachineCode = pDCYJCmd.MachineCode, BarrelType = pDCYJPlan.GatherType });
                            if (pDCYJBarrel != null)
                            {
                                OutputRunInfo(rtxtOutput, "分配集样罐,罐号:" + pDCYJBarrel.BarrelNumber + "  " + pDCYJBarrel.BarrelType);

                                pDCYJBarrel.SampleCount      = 1;
                                pDCYJBarrel.SampleCode       = pDCYJCmd.SampleCode;
                                pDCYJBarrel.InFactoryBatchId = pDCYJPlan.InFactoryBatchId;
                                pDCYJBarrel.IsCurrent        = 1;
                                pDCYJBarrel.BarrelStatus     = eSampleBarrelStatus.未满.ToString();
                                pDCYJBarrel.UpdateTime       = DateTime.Now;
                                pDCYJBarrel.DataFlag         = 0;
                                dber.Update(pDCYJBarrel);
                            }
                        }
                        else
                        {
                            OutputRunInfo(rtxtOutput, "分配集样罐,罐号:" + pDCYJBarrel.BarrelNumber + " " + pDCYJBarrel.BarrelType);

                            pDCYJBarrel.SampleCount++;
                            pDCYJBarrel.IsCurrent    = 1;
                            pDCYJBarrel.BarrelStatus = eSampleBarrelStatus.未满.ToString();
                            pDCYJBarrel.UpdateTime   = DateTime.Now;
                            pDCYJBarrel.DataFlag     = 0;
                            dber.Update(pDCYJBarrel);
                        }

                        // 更新计划
                        pDCYJPlan.StartTime = DateTime.Now;
                        dber.Update(pDCYJPlan);

                        // 更新命令
                        pDCYJCmd.ResultCode = eEquInfCmdResultCode.成功.ToString();
                        pDCYJCmd.DataFlag   = 2;
                        dber.Update(pDCYJCmd);
                    }
                    else
                    {
                        OutputRunInfo(rtxtOutput, "未找到采样计划,采样码:" + pDCYJCmd.SampleCode);

                        pDCYJCmd.ResultCode = eEquInfCmdResultCode.失败.ToString();
                        pDCYJCmd.DataFlag   = 1;
                        dber.Update(pDCYJCmd);
                    }
                }
                else if (pDCYJCmd.CmdCode == eEquInfSamplerCmd.结束采样.ToString())
                {
                    Thread.Sleep(3000);
                    OutputRunInfo(rtxtOutput, "停止采样机");

                    // 更新系统状态为就绪待机
                    dber.Execute("update " + EntityReflectionUtil.GetTableName <EquPDCYJSignal>() + " set TagValue=@TagValue where MachineCode=@MachineCode and TagName=@TagName", new { MachineCode = pDCYJCmd.MachineCode, TagName = eSignalDataName.序状态.ToString(), TagValue = eEquInfSamplerSystemStatus.就绪待机.ToString() });

                    EquPDCYJPlan pDCYJPlan = dber.Entity <EquPDCYJPlan>("where SampleCode=@SampleCode", new { SampleCode = pDCYJCmd.SampleCode });
                    if (pDCYJPlan != null)
                    {
                        // 更新计划
                        pDCYJPlan.SampleUser = "******";
                        pDCYJPlan.StartTime  = DateTime.Now.AddSeconds(10);
                        pDCYJPlan.EndTime    = DateTime.Now;
                        dber.Update(pDCYJPlan);
                    }

                    // 更新命令
                    pDCYJCmd.ResultCode = eEquInfCmdResultCode.成功.ToString();
                    pDCYJCmd.DataFlag   = 2;
                    dber.Update(pDCYJCmd);
                }

                autoResetEvent.Set();
            }, input);

            task.Start();
        }
 /// <summary>
 /// 记录样桶校验记录(采样第二次称重)
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public bool UpdateRCSampleBarrelCheckSampleWeight(string rCSampleBarrelId, double weight)
 {
     return(Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsRCSampleBarrel>() + " set CheckSampleWeight=:CheckSampleWeight where Id=:Id", new { CheckSampleWeight = weight, Id = rCSampleBarrelId }) > 0);
 }
Beispiel #24
0
 /// <summary>
 /// 生成查询数量的 SELECT 语句
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public virtual string Count <T>()
 {
     return(string.Format("SELECT COUNT({1}) FROM {0} ", EntityReflectionUtil.GetTableName <T>(), EntityReflectionUtil.GetPrimaryKey <T>()));
 }
Beispiel #25
0
 /// <summary>
 /// 生成根据主键查询的 WHERE 语句
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public virtual string PrimaryKeyCondition <T>()
 {
     return(string.Format("WHERE {0}={1}Dapper_PKey ", EntityReflectionUtil.GetPrimaryKey <T>(), this.paramPrefix));
 }
Beispiel #26
0
 /// <summary>
 /// 生成不带条件的 SELECT 语句
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public virtual string Select <T>()
 {
     return(string.Format("SELECT * FROM {0} ", EntityReflectionUtil.GetTableName <T>()));
 }
Beispiel #27
0
 /// <summary>
 /// 生成 DELETE 语句
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public virtual string Delete <T>() where T : class
 {
     return(string.Format("DELETE FROM {0} ", EntityReflectionUtil.GetTableName <T>()));
 }
Beispiel #28
0
 /// <summary>
 /// 增加省份简称的使用次数
 /// </summary>
 /// <param name="paName">省份简称</param>
 public void AddProvinceAbbreviationUseCount(string paName)
 {
     Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsProvinceAbbreviation>() + " set UseCount=UseCount+1 where PaName=:PaName", new { PaName = paName });
 }
Beispiel #29
0
        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();
        }
Beispiel #30
0
 /// <summary>
 /// 重置所有接口表
 /// </summary>
 void ResetAll()
 {
     this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquQZDZYJCmd>() + " set DataFlag=3");
 }