Exemplo n.º 1
0
 public void Rwer1_OnReadSuccess(string carnumber)
 {
     InvokeEx(() =>
     {
         if (carnumber != "无车牌" && this.CurrentFlowFlag == eFlowFlag.等待车辆)
         {
             passCarQueuer.Enqueue(carnumber);
             this.CurrentFlowFlag = eFlowFlag.验证车辆;
             timer1_Tick(null, null);
             //UpdateLedShow(carnumber);
             Log4Neter.Info(string.Format("车号识别1识别到车号:{0}", carnumber));
         }
     });
 }
Exemplo n.º 2
0
        public void Output(string message)
        {
            try
            {
                rtxtOutput.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " - " + message + Environment.NewLine);
                rtxtOutput.ScrollToCaret();

                if (lastMessage != message)
                {
                    Log4Neter.Info(message);
                }

                lastMessage = message;
            }
            catch { }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 发送采样计划,若存在则更新
        /// </summary>
        /// <param name="view_TrainTipperQueue"></param>
        /// <returns></returns>
        public bool SendSamplePlan(View_TrainTipperQueue view_TrainTipperQueue)
        {
            CmcsInFactoryBatch inFactoryBatch = Dbers.GetInstance().SelfDber.Get <CmcsInFactoryBatch>(view_TrainTipperQueue.InFactoryBatchId);

            if (inFactoryBatch == null)
            {
                throw new ArgumentNullException("inFactoryBatchId", "未找到Id=" + view_TrainTipperQueue.InFactoryBatchId + "的批次");
            }

            CmcsFuelKind fuelKind             = Dbers.GetInstance().SelfDber.Get <CmcsFuelKind>(inFactoryBatch.FuelKindId);
            List <View_TrainTipperQueue> list = trainTipperDAO.GetView_TrainTipperQueueBy(view_TrainTipperQueue.TrainSampleSchemeId);

            InfBeltSamplePlan oldBeltSamplePlan = Dbers.GetInstance().SelfDber.Entity <InfBeltSamplePlan>("where InFactoryBatchId=:InFactoryBatchId and SampleCode=:SampleCode", new { InFactoryBatchId = view_TrainTipperQueue.InFactoryBatchId, SampleCode = view_TrainTipperQueue.YuSampleCode });

            if (oldBeltSamplePlan == null)
            {
                Log4Neter.Info(this.trainTipper.EquipmentName + " - 向[" + this.trainBeltSampler.EquipmentCode + "]发送采样计划,采样码:" + view_TrainTipperQueue.YuSampleCode);

                return(Dbers.GetInstance().SelfDber.Insert <InfBeltSamplePlan>(new InfBeltSamplePlan
                {
                    DataFlag = 0,
                    InterfaceType = this.trainBeltSampler.InterfaceType,
                    InFactoryBatchId = view_TrainTipperQueue.InFactoryBatchId,
                    SampleCode = view_TrainTipperQueue.YuSampleCode,
                    FuelKindName = fuelKind != null ? fuelKind.Name : string.Empty,
                    CarCount = list.Count,
                    Mt = 0,
                    TicketWeight = list.Sum(a => a.TicketQty),
                    SampleType = eEquInfSampleType.到集样罐.ToString(),
                    GatherType = commonDAO.GetCommonAppletConfigString(this.trainBeltSampler.EquipmentCode + "集样方式")
                }) > 0);
            }
            else
            {
                Log4Neter.Info(this.trainTipper.EquipmentName + " - 向[" + this.trainBeltSampler.EquipmentCode + "]更新采样计划,采样码:" + view_TrainTipperQueue.YuSampleCode);

                oldBeltSamplePlan.DataFlag     = 0;
                oldBeltSamplePlan.FuelKindName = fuelKind != null ? fuelKind.Name : string.Empty;
                oldBeltSamplePlan.CarCount     = list.Count;
                oldBeltSamplePlan.Mt           = 0;
                oldBeltSamplePlan.TicketWeight = list.Sum(a => a.TicketQty);
                oldBeltSamplePlan.SampleType   = eEquInfSampleType.到集样罐.ToString();
                oldBeltSamplePlan.GatherType   = commonDAO.GetCommonAppletConfigString(this.trainBeltSampler.EquipmentCode + "集样方式");

                return(Dbers.GetInstance().SelfDber.Update(oldBeltSamplePlan) > 0);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 开始翻车
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStartTurnover_Click(object sender, EventArgs e)
        {
            Log4Neter.Info(this.trainTipper.EquipmentName + " - 开始翻车");

            if (this.view_TrainTipperQueue_DF.Count == 0)
            {
                MessageBoxEx2Show("翻车队列为空,请查询出队列后再运行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            btnStartTurnover.Enabled        = false;
            btnAddTrainCarriagePass.Enabled = true;
            dtiptStartArriveTime.Enabled    = false;
            dtiptEndArriveTime.Enabled      = false;

            CreateMainTask();
        }
Exemplo n.º 5
0
        /// <summary>
        /// 发送结束采样命令
        /// </summary>
        /// <param name="view_TrainTipperQueue"></param>
        private bool SendSamplerStopCmd(View_TrainTipperQueue view_TrainTipperQueue)
        {
            this.lastView_TrainTipperQueue = null;

            bool res = false;

            // 检测采样机系统的状态
            string samplerSystemStatue = commonDAO.GetSignalDataValue(this.trainBeltSampler.EquipmentCode, eSignalDataName.系统.ToString());

            if (samplerSystemStatue == eEquInfSamplerSystemStatus.正在运行.ToString())
            {
                string sampleCode = view_TrainTipperQueue != null ? view_TrainTipperQueue.YuSampleCode : string.Empty;

                Log4Neter.Info(this.trainTipper.EquipmentName + " - 向[" + this.trainBeltSampler.EquipmentCode + "]发送[结束采样]命令,采样码:" + sampleCode);

                string cmdId;
                bool   sendSuccess = beltSamplerDAO.SendSampleCmd(this.trainBeltSampler.EquipmentCode, eEquInfSamplerCmd.结束采样, sampleCode, out cmdId);

                ChangeUIEnabled(false);
                OutputRunInfo("等待皮带采样机返回命令(结束采样)执行结果");

                eEquInfCmdResultCode equInfCmdResultCode;
                do
                {
                    Thread.Sleep(10000);

                    equInfCmdResultCode = beltSamplerDAO.GetSampleCmdResult(cmdId);
                }while (sendSuccess && equInfCmdResultCode == eEquInfCmdResultCode.默认);

                res = equInfCmdResultCode == eEquInfCmdResultCode.成功;

                ChangeUIEnabled(true);
                OutputRunInfo("皮带采样机执行命令(结束采样)" + (res ? "成功" : "失败"));

                return(res);
            }
            else
            {
                OutputRunInfo(this.trainBeltSampler.EquipmentCode + "未处于正在运行状态,无须发送结束采样命令");
                Log4Neter.Info(this.trainTipper.EquipmentName + " - " + this.trainBeltSampler.EquipmentCode + "未处于正在运行状态,无须发送结束采样命令");

                return(true);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 发送开始采样命令
        /// </summary>
        /// <param name="view_TrainTipperQueue"></param>
        /// <returns></returns>
        private bool SendSamplerStartCmd(View_TrainTipperQueue view_TrainTipperQueue)
        {
            this.lastView_TrainTipperQueue = view_TrainTipperQueue;

            bool res = false;

            // 检测采样机系统的状态
            string samplerSystemStatue = commonDAO.GetSignalDataValue(this.trainBeltSampler.EquipmentCode, eSignalDataName.系统.ToString());

            if (samplerSystemStatue == eEquInfSamplerSystemStatus.就绪待机.ToString() || samplerSystemStatue == eEquInfSamplerSystemStatus.正在运行.ToString())
            {
                Log4Neter.Info(this.trainTipper.EquipmentName + " - 向[" + this.trainBeltSampler.EquipmentCode + "]发送[开始采样]命令,采样码:" + view_TrainTipperQueue.YuSampleCode);

                // 发送采样计划
                if (SendSamplePlan(view_TrainTipperQueue))
                {
                    string cmdId;
                    bool   sendSuccess = beltSamplerDAO.SendSampleCmd(this.trainBeltSampler.EquipmentCode, eEquInfSamplerCmd.开始采样, view_TrainTipperQueue.YuSampleCode, out cmdId);

                    ChangeUIEnabled(false);
                    OutputRunInfo("等待皮带采样机返回命令(开始采样)执行结果");

                    eEquInfCmdResultCode equInfCmdResultCode;
                    do
                    {
                        Thread.Sleep(10000);

                        equInfCmdResultCode = beltSamplerDAO.GetSampleCmdResult(cmdId);
                    }while (sendSuccess && equInfCmdResultCode == eEquInfCmdResultCode.默认);

                    res = equInfCmdResultCode == eEquInfCmdResultCode.成功;

                    ChangeUIEnabled(true);
                    OutputRunInfo("皮带采样机执行命令(开始采样)" + (res ? "成功" : "失败"));
                }
            }
            else
            {
                Log4Neter.Info(this.trainTipper.EquipmentName + " - " + this.trainBeltSampler.EquipmentCode + "未处于" + samplerSystemStatue + "状态,禁止发送开始采样命令");
            }

            return(res);
        }
Exemplo n.º 7
0
        private void superGridControl1_CellMouseDown(object sender, DevComponents.DotNetBar.SuperGrid.GridCellMouseEventArgs e)
        {
            CmcsBuyFuelTransport entity = Dbers.GetInstance().SelfDber.Get <CmcsBuyFuelTransport>(superGridControl1.PrimaryGrid.GetCell(e.GridCell.GridRow.Index, superGridControl1.PrimaryGrid.Columns["clmId"].ColumnIndex).Value.ToString());

            switch (superGridControl1.PrimaryGrid.Columns[e.GridCell.ColumnIndex].Name)
            {
            case "clmShow":
                FrmBuyFuelTransport_Oper frmShow = new FrmBuyFuelTransport_Oper(entity.Id, false);
                if (frmShow.ShowDialog() == DialogResult.OK)
                {
                    BindData();
                }
                break;

            case "clmEdit":
                FrmBuyFuelTransport_Oper frmEdit = new FrmBuyFuelTransport_Oper(entity.Id, true);
                if (frmEdit.ShowDialog() == DialogResult.OK)
                {
                    BindData();
                }
                break;

            case "clmDelete":
                // 查询正在使用该记录的车数
                if (MessageBoxEx.Show("确定要删除该记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        Dbers.GetInstance().SelfDber.Delete <CmcsBuyFuelTransport>(entity.Id);
                        Log4Neter.Info(string.Format("{0}删除运输记录,车号:{1} 矿点:{2}", SelfVars.LoginUser.UserName, entity.CarNumber, entity.MineName));
                    }
                    catch (Exception)
                    {
                        MessageBoxEx.Show("该记录正在使用中,禁止删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

                    BindData();
                }
                break;
            }
        }
Exemplo n.º 8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            VerifyBeforeClose  = false;
            this.rTxtOutputer  = new RTxtOutputer(rtxtOutput);
            this.ShowInTaskbar = false;
            this.WindowState   = FormWindowState.Minimized;
            try
            {
                if (LoginDAO.CreateCred(commonAppConfig.IP, commonAppConfig.User, commonAppConfig.Pass))
                {
                    this.rTxtOutputer.Output("凭据添加成功");
                    Log4Neter.Info("凭据添加成功");
                }
                else
                {
                    this.rTxtOutputer.Output("凭据添加失败", eOutputType.Warn);
                    Log4Neter.Info("凭据添加失败");
                }
            }
            catch (Exception ex)
            {
                this.rTxtOutputer.Output("凭据添加失败", eOutputType.Error);
                Log4Neter.Error("添加凭据", ex);
            }

            //try
            //{
            //    // 添加、取消开机启动
            //    StartUpUtil.InsertStartUp(Application.ProductName, Application.ExecutablePath);
            //    this.rTxtOutputer.Output("添加开机启动成功", eOutputType.Normal);
            //    //StartUpUtil.DeleteStartUp(Application.ProductName);
            //}
            //catch (Exception ex)
            //{
            //    this.rTxtOutputer.Output("添加开机启动失败", eOutputType.Warn);
            //    Log4Neter.Error("添加开机启动", ex);
            //}

            TestFileSystemWatcher(commonAppConfig.DataPath);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 设置为当前翻车
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddTrainCarriagePass_Click(object sender, EventArgs e)
        {
            GridRow gridRow = superGridControl_DF.PrimaryGrid.SelectedRows.OfType <GridRow>().FirstOrDefault();

            if (gridRow == null)
            {
                return;
            }

            View_TrainTipperQueue view_TrainTipperQueue = gridRow.DataItem as View_TrainTipperQueue;

            if (view_TrainTipperQueue == null)
            {
                return;
            }

            if (this.CurrentTrainCarriagePass == null ||
                (this.CurrentTrainCarriagePass != null && (view_TrainTipperQueue.TrainNumber != this.CurrentTrainCarriagePass.TrainNumber ||
                                                           (view_TrainTipperQueue.TrainNumber == this.CurrentTrainCarriagePass.TrainNumber &&
                                                            MessageBoxEx.Show("此车已经处于翻车中,确定要重新设置?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))))
            {
                // 跳过车厢设置时进行提示
                if (view_TrainTipperQueue != this.view_TrainTipperQueue_DF.FirstOrDefault() && MessageBoxEx.Show("车厢[" + view_TrainTipperQueue.TrainNumber + "]不是当前队列中第一节车厢,确定要设置?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }

                // 插入车号识别通过记录
                if (carriageRecognitionerDAO.SaveTrainCarriagePass(this.carriageRecognitionerMachineCode, view_TrainTipperQueue.TrainNumber, DateTime.Now, eTrainPassDirection.进厂))
                {
                    Log4Neter.Info(this.trainTipper.EquipmentName + " - 设置车厢[" + view_TrainTipperQueue.TrainNumber + "]为当前翻车");
                    OutputRunInfo("设置车厢[" + view_TrainTipperQueue.TrainNumber + "]为当前翻车");
                }
                else
                {
                    MessageBoxEx.Show("设置失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 停止翻车
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStopTurnover_Click(object sender, EventArgs e)
        {
            Log4Neter.Info(this.trainTipper.EquipmentName + " - 停止翻车");

            // 取消任务
            this.taskSimpleScheduler.Cancal();

            if (MessageBoxEx2Show("是否立即通知皮带采样机停止采样?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                btnStartTurnover.Enabled        = false;
                btnAddTrainCarriagePass.Enabled = false;
                dtiptStartArriveTime.Enabled    = false;
                dtiptEndArriveTime.Enabled      = false;

                Task task = new Task(() =>
                {
                    // 停止采样机
                    SendSamplerStopCmd(this.lastView_TrainTipperQueue);

                    this.InvokeEx(() =>
                    {
                        btnStartTurnover.Enabled        = true;
                        btnAddTrainCarriagePass.Enabled = false;
                        dtiptStartArriveTime.Enabled    = true;
                        dtiptEndArriveTime.Enabled      = true;
                    });
                });
                task.Start();
            }
            else
            {
                btnStartTurnover.Enabled        = true;
                btnAddTrainCarriagePass.Enabled = false;
                dtiptStartArriveTime.Enabled    = true;
                dtiptEndArriveTime.Enabled      = true;
            }
        }
Exemplo n.º 11
0
        void TestFileSystemWatcher(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                this.rTxtOutputer.Output("文件监测路径为空", eOutputType.Normal);
                Log4Neter.Info("文件监测路径为空");
                return;
            }
            FileSystemWatcher watcher = new FileSystemWatcher();

            try
            {
                watcher.Path = path.Substring(0, path.LastIndexOf(@"\"));
            }
            catch (ArgumentException ex)
            {
                Log4Neter.Error("监测文件", ex);
                return;
            }

            //设置监视文件的哪些修改行为
            watcher.NotifyFilter = NotifyFilters.LastAccess
                                   | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;


            watcher.Filter = "*.mdb";

            watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.Deleted += new FileSystemEventHandler(OnChanged);
            watcher.Renamed += new RenamedEventHandler(OnRenamed);

            watcher.EnableRaisingEvents = true;

            //while (Console.Read() != 'q') ;
        }
Exemplo n.º 12
0
 void Dber_SqlWatch(string type, string sql)
 {
     Log4Neter.Info(sql);
 }
Exemplo n.º 13
0
        /// <summary>
        /// 导入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnImport_Click(object sender, EventArgs e)
        {
            int res = 0;

            try
            {
                openFileDialog1.Filter = "(*.xlsx)|*.xlsx|(*.xls)|*.xls";
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    //获取用户选择文件的后缀名
                    string extension = Path.GetExtension(openFileDialog1.FileName);
                    //声明允许的后缀名
                    string[] str = new string[] { ".xls", ".xlsx" };
                    if (!str.Contains(extension))
                    {
                        MessageBoxEx.Show("仅能导入xls,xlsx格式的文件!");
                        return;
                    }

                    DataTable data = CommonDAO.GetInstance().GetExcelDatatable(openFileDialog1.FileName, "ImportTable");

                    if (data != null && data.Rows.Count > 0)
                    {
                        foreach (DataRow item in data.Rows)
                        {
                            string carNumber = item[0] != DBNull.Value ? item[0].ToString() : "";
                            if (string.IsNullOrEmpty(carNumber) || carNumber.Length != 7)
                            {
                                Log4Neter.Info(string.Format("车牌号:{0}导入失败,车牌号格式不正确。", carNumber));
                                continue;
                            }
                            //车号
                            CmcsAutotruck autoTruck = CommonDAO.GetInstance().SelfDber.Entity <CmcsAutotruck>("where CarNumber=:CarNumber", new { CarNumber = carNumber });
                            if (autoTruck == null)
                            {
                                autoTruck           = new CmcsAutotruck();
                                autoTruck.CarNumber = carNumber;
                                autoTruck.CarType   = eCarType.入厂煤.ToString();
                                autoTruck.IsUse     = 1;

                                autoTruck.Driver                = item[1] != DBNull.Value ? item[1].ToString() : "";
                                autoTruck.CellPhoneNumber       = item[2] != DBNull.Value ? item[2].ToString() : "";
                                autoTruck.CarriageTotalLength   = item[3] != DBNull.Value ? Convert.ToInt32(item[3]) : 0;
                                autoTruck.CarriageLength        = item[4] != DBNull.Value ? Convert.ToInt32(item[4]) : 0;
                                autoTruck.CarriageWidth         = item[5] != DBNull.Value ? Convert.ToInt32(item[5]) : 0;
                                autoTruck.CarriageHeight        = item[6] != DBNull.Value ? Convert.ToInt32(item[6]) : 0;
                                autoTruck.CarriageBottomToFloor = item[7] != DBNull.Value ? Convert.ToInt32(item[7]) : 0;
                                autoTruck.LeftObstacle1         = item[8] != DBNull.Value ? Convert.ToInt32(item[8]) : 0;
                                autoTruck.LeftObstacle2         = item[9] != DBNull.Value ? Convert.ToInt32(item[9]) : 0;
                                autoTruck.LeftObstacle3         = item[10] != DBNull.Value ? Convert.ToInt32(item[10]) : 0;
                                autoTruck.LeftObstacle4         = item[11] != DBNull.Value ? Convert.ToInt32(item[11]) : 0;
                                autoTruck.LeftObstacle5         = item[12] != DBNull.Value ? Convert.ToInt32(item[12]) : 0;
                                autoTruck.LeftObstacle6         = item[13] != DBNull.Value ? Convert.ToInt32(item[13]) : 0;
                                autoTruck.ReMark                = item[14] != DBNull.Value ? item[14].ToString() : "";
                                autoTruck.IsSynch               = 0;
                                res += Dbers.GetInstance().SelfDber.Insert(autoTruck);
                            }
                            else
                            {
                                autoTruck.Driver                = item[1] != DBNull.Value ? item[1].ToString() : "";
                                autoTruck.CellPhoneNumber       = item[2] != DBNull.Value ? item[2].ToString() : "";
                                autoTruck.CarriageTotalLength   = item[3] != DBNull.Value ? Convert.ToInt32(item[3]) : 0;
                                autoTruck.CarriageLength        = item[4] != DBNull.Value ? Convert.ToInt32(item[4]) : 0;
                                autoTruck.CarriageWidth         = item[5] != DBNull.Value ? Convert.ToInt32(item[5]) : 0;
                                autoTruck.CarriageHeight        = item[6] != DBNull.Value ? Convert.ToInt32(item[6]) : 0;
                                autoTruck.CarriageBottomToFloor = item[7] != DBNull.Value ? Convert.ToInt32(item[7]) : 0;
                                autoTruck.LeftObstacle1         = item[8] != DBNull.Value ? Convert.ToInt32(item[8]) : 0;
                                autoTruck.LeftObstacle2         = item[9] != DBNull.Value ? Convert.ToInt32(item[9]) : 0;
                                autoTruck.LeftObstacle3         = item[10] != DBNull.Value ? Convert.ToInt32(item[10]) : 0;
                                autoTruck.LeftObstacle4         = item[11] != DBNull.Value ? Convert.ToInt32(item[11]) : 0;
                                autoTruck.LeftObstacle5         = item[12] != DBNull.Value ? Convert.ToInt32(item[12]) : 0;
                                autoTruck.LeftObstacle6         = item[13] != DBNull.Value ? Convert.ToInt32(item[13]) : 0;
                                autoTruck.ReMark                = item[14] != DBNull.Value ? item[14].ToString() : "";
                                autoTruck.IsSynch               = 0;
                                res += Dbers.GetInstance().SelfDber.Update(autoTruck);
                            }
                        }
                    }
                    MessageBoxEx.Show("成功导入" + res + "条信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    btnSearch_Click(null, null);
                }
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show("导入失败\r\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 14
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (cmcsBuyFuelTransport == null)
            {
                MessageBoxEx.Show("当前记录为空,请返回列表页面重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (txt_CarNumber.Text.Length == 0)
            {
                MessageBoxEx.Show("车牌号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            //if ((cmcsBuyFuelTransport == null || cmcsBuyFuelTransport.CarNumber != txt_CarNumber.Text) && Dbers.GetInstance().SelfDber.Entities<CmcsBuyFuelTransport>(" where CarNumber=:CarNumber and IsFinish='1'", new { CarNumber = txt_CarNumber.Text }).Count > 0)
            //{
            //    MessageBoxEx.Show("车牌号不可重复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            //    return;
            //}
            //if ((decimal)dbi_TicketWeight.Value <= 0)
            //{
            //    MessageBoxEx.Show("请填写正确的矿发量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            //    return;
            //}
            if (cmcsBuyFuelTransport != null)
            {
                CmcsAutotruck autoTruck = commonDAO.SelfDber.Entity <CmcsAutotruck>("where CarNumber=:CarNumber", new { CarNumber = this.txt_CarNumber.Text });
                if (autoTruck == null)
                {
                    autoTruck = new CmcsAutotruck()
                    {
                        CarNumber = this.txt_CarNumber.Text
                    };
                    commonDAO.SelfDber.Insert(autoTruck);
                }
                //车号发生改变
                if (cmcsBuyFuelTransport.CarNumber != txt_CarNumber.Text)
                {
                    cmcsBuyFuelTransport.AutotruckId = autoTruck.Id;
                    CmcsUnFinishTransport unFinishTransprot = CarTransportDAO.GetInstance().GetUnFinishTransportByAutotruckId(cmcsBuyFuelTransport.Id);
                    if (unFinishTransprot != null)
                    {
                        unFinishTransprot.AutotruckId = autoTruck.Id;
                        commonDAO.SelfDber.Update(unFinishTransprot);
                    }
                }
                cmcsBuyFuelTransport.SerialNumber = txt_SerialNumber.Text;
                cmcsBuyFuelTransport.CarNumber    = txt_CarNumber.Text;

                if (this.SelectedMine_BuyFuel != null)
                {
                    cmcsBuyFuelTransport.MineId   = this.SelectedMine_BuyFuel.Id;
                    cmcsBuyFuelTransport.MineName = this.SelectedMine_BuyFuel.Name;
                }
                if (this.SelectedFuelKind_BuyFuel != null)
                {
                    cmcsBuyFuelTransport.FuelKindId   = this.SelectedFuelKind_BuyFuel.Id;
                    cmcsBuyFuelTransport.FuelKindName = this.SelectedFuelKind_BuyFuel.FuelName;
                }
                if (cmcsBuyFuelTransport.GrossWeight != (decimal)dbi_GrossWeight.Value || cmcsBuyFuelTransport.TareWeight != (decimal)dbi_TareWeight.Value)
                {
                    Log4Neter.Info(string.Format("{0}修改,修改前毛重:{1},修改前皮重:{2}", SelfVars.LoginUser.UserName, cmcsBuyFuelTransport.GrossWeight, cmcsBuyFuelTransport.TareWeight));
                    commonDAO.SaveAppletLog(eAppletLogLevel.Info, "修改运输记录", string.Format("{0}修改,修改前毛重:{1},修改前皮重:{2}", SelfVars.LoginUser.UserName, cmcsBuyFuelTransport.GrossWeight, cmcsBuyFuelTransport.TareWeight));
                }
                cmcsBuyFuelTransport.Remark       = txt_Remark.Text;
                cmcsBuyFuelTransport.TicketWeight = (decimal)dbi_TicketWeight.Value;
                cmcsBuyFuelTransport.GrossWeight  = (decimal)dbi_GrossWeight.Value;
                cmcsBuyFuelTransport.DeductWeight = (decimal)dbi_DeductWeight.Value;
                cmcsBuyFuelTransport.TareWeight   = (decimal)dbi_TareWeight.Value;
                cmcsBuyFuelTransport.SuttleWeight = (decimal)dbi_SuttleWeight.Value;
                txt_Remark.Text = cmcsBuyFuelTransport.Remark;
                cmcsBuyFuelTransport.IsFinish = (chb_IsFinish.Checked ? 1 : 0);
                cmcsBuyFuelTransport.IsUse    = (chb_IsUse.Checked ? 1 : 0);

                cmcsBuyFuelTransport.KsWeight = (decimal)dbi_KsWeight.Value;
                cmcsBuyFuelTransport.KgWeight = (decimal)dbi_KgWeight.Value;
                WeighterDAO.GetInstance().SaveBuyFuelTransport(cmcsBuyFuelTransport);
            }
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
Exemplo n.º 15
0
        /// <summary>
        /// 保存入厂煤运输记录
        /// </summary>
        /// <param name="transportId"></param>
        /// <param name="weight">重量</param>
        /// <param name="place"></param>
        /// <returns></returns>
        public bool SaveBuyFuelTransport(string transportId, decimal weight, DateTime dt, string place)
        {
            CmcsBuyFuelTransport transport = SelfDber.Get <CmcsBuyFuelTransport>(transportId);

            if (transport == null)
            {
                return(false);
            }
            transport.IsSynch = "0";

            if (transport.GrossWeight == 0)
            {
                transport.StepName    = eTruckInFactoryStep.重车.ToString();
                transport.GrossWeight = weight;
                transport.GrossPlace  = place;
                transport.GrossTime   = dt;
                Log4Neter.Info(string.Format("车牌号:{0} 毛重:{1}", transport.CarNumber, transport.GrossWeight));
            }
            else if (transport.TareWeight == 0)
            {
                transport.StepName     = eTruckInFactoryStep.轻车.ToString();
                transport.TareWeight   = weight;
                transport.TarePlace    = place;
                transport.TareTime     = dt;
                transport.SuttleWeight = transport.GrossWeight - transport.TareWeight;
                ////验收量大于票重时多余的量算到扣吨
                if (transport.TicketWeight != 0)
                {
                    decimal deduct       = transport.SuttleWeight > transport.TicketWeight ? (transport.SuttleWeight - transport.TicketWeight) : 0;
                    decimal letterdeduct = 0;                    //抹去的小数位
                    //transport.SuttleWeight -= deduct;
                    transport.CheckWeight = OneDigit(transport.SuttleWeight - deduct - transport.KsWeight - transport.KgWeight, ref letterdeduct);
                    deduct += letterdeduct;
                    transport.AutoKsWeight = deduct;
                    transport.DeductWeight = transport.AutoKsWeight + transport.KsWeight + transport.KgWeight;
                }
                else
                {
                    transport.DeductWeight = transport.KsWeight + transport.KgWeight;
                    transport.CheckWeight  = transport.SuttleWeight - transport.DeductWeight;
                }
                transport.ProfitAndLossWeight = transport.CheckWeight - transport.TicketWeight;

                // 回皮即完结
                transport.IsFinish = 1;
                carTransportDAO.DelUnFinishTransport(transport.Id);
                commonDAO.InsertWaitForHandleEvent("汽车智能化_同步入厂煤运输记录到批次", transport.Id);
                commonDAO.InsertWaitForHandleEvent("汽车智能化_删除未完成运输记录", transport.Id);
                Log4Neter.Info(string.Format("车牌号:{0} 毛重:{1} 皮重:{2} 扣重:{3}", transport.CarNumber, transport.GrossWeight, transport.TareWeight, transport.DeductWeight));

                if (IsOverCalcWaylose(transport.SuttleWeight, transport.TicketWeight))
                {
                    commonDAO.SaveSysMessage(place, string.Format("车牌号:{0}净重异常", transport.CarNumber));
                }
            }
            else
            {
                return(false);
            }
            if (transport.GrossTime.Day != transport.InFactoryTime.Day)
            {
                carTransportDAO.GCQCInFactoryBatchByBuyFuelTransport(transport, null);
            }
            return(SelfDber.Update(transport) > 0);
        }
Exemplo n.º 16
0
        public void TransferBaseOperLog(Action <string, eOutputType> output)
        {
            string interfaceUrl = commonDAO.GetAppletConfigString("数据同步智仁接口", "接口地址");

            if (string.IsNullOrWhiteSpace(interfaceUrl))
            {
                output("未在【小程序参数配置】模块中添加配置“接口地址”", eOutputType.Error);
                return;
            }

            OracleDapperDber thirdDber = new OracleDapperDber(interfaceUrl);

            int    intervalValue = 7;
            string configValue   = commonDAO.GetAppletConfigString("数据同步智仁接口", "获取集团数据时间间隔(天)");

            if (!string.IsNullOrWhiteSpace(configValue))
            {
                Int32.TryParse(configValue, out intervalValue);
            }
            DateTime startTime = DateTime.Now.AddDays(-intervalValue);

            string    searchSql = string.Format("select * from V_JK_COALLOG where RIQ>=to_date('{0}','yyyy-MM-dd hh24:mi:ss') order by RIQ desc", startTime.ToString("yyyy-MM-dd HH:mm:ss"));
            DataTable dt        = thirdDber.ExecuteDataTable(searchSql);

            if (dt == null || dt.Rows.Count <= 0)
            {
                return;
            }

            foreach (DataRow item in dt.Rows)
            {
                string sql = "";
                if (item["LEIX"].ToString() == "煤矿单位")
                {
                    #region 煤矿
                    if (item["DONGZ"].ToString() == "增加")
                    {
                        //先查有没有,没有就新增,有就更新
                        DataTable dtTemp = SelfDber.ExecuteDataTable(string.Format("select * from fultbmine where name='{0}' or CompanyCode='{1}'", item["NEWNAME"], item["NEWCODE"]));
                        if (dtTemp != null && dtTemp.Rows.Count > 0)
                        {
                            if (dtTemp.Rows.Count > 1)
                            {
                                output(string.Format("矿点:名称【{0}】,编码【{1}】,查询到多条记录,更新失败!请在系统中检查数据合理性!", item["NEWNAME"], item["NEWCODE"]), eOutputType.Error);
                                continue;
                            }
                            else
                            {
                                sql = string.Format("update fultbmine set name='{0}',CompanyCode='{1}',SYNCTIME=sysdate where name='{2}' and CompanyCode='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                            }
                        }
                        else                         //新增
                        {
                            sql = string.Format(@"insert into fultbmine (ID, CREATIONTIME, CREATORUSERID, ISDELETED, CODE, SORT, NAME, ISSTOP, DATAFROM, PARENTID, SYNCFLAG, COMPANYCODE, SHORTNAME, DATAFLAG, SYNCTIME)
values ('{0}', sysdate, 1, 0, '{1}', 1, '{2}', 0, '集团接口', '-1', 0, '{1}', '{2}', 0, sysdate)", Guid.NewGuid().ToString(), item["NEWCODE"], item["NEWNAME"]);
                            Log4Neter.Info(sql);
                        }
                    }
                    else if (item["DONGZ"].ToString() == "更新")
                    {
                        sql = string.Format("update fultbmine set name='{0}',CompanyCode='{1}',SYNCTIME=sysdate where name='{2}' and CompanyCode='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                    }
                    else if (item["DONGZ"].ToString() == "删除")
                    {
                        sql = string.Format("update fultbmine set isstop=1,SYNCTIME=sysdate where name='{0}' and CompanyCode='{1}'", item["OLDNAME"], item["OLDCODE"]);
                    }
                    #endregion
                }
                else if (item["LEIX"].ToString() == "运输单位")
                {
                    #region 运输单位
                    if (item["DONGZ"].ToString() == "增加")
                    {
                        //先查有没有,没有就新增,有就更新
                        DataTable dtTemp = SelfDber.ExecuteDataTable(string.Format("select * from fultbtransportcompany where name='{0}' or code='{1}'", item["NEWNAME"], item["NEWCODE"]));
                        if (dtTemp != null && dtTemp.Rows.Count > 0)
                        {
                            if (dtTemp.Rows.Count > 1)
                            {
                                output(string.Format("运输单位:名称【{0}】,编码【{1}】,查询到多条记录,更新失败!请在系统中检查数据合理性!", item["OLDNAME"], item["OLDCODE"]), eOutputType.Error);
                                continue;
                            }
                            else
                            {
                                sql = string.Format("update fultbtransportcompany set name='{0}',code='{1}',SYNCTIME=sysdate where name='{2}' and code='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                            }
                        }
                        else                         //新增
                        {
                            sql = string.Format(@"insert into fultbtransportcompany (ID, CREATIONTIME, CREATORUSERID, ISDELETED, CODE, NAME, ISSTOP, DATAFROM, SYNCFLAG, SYNCTIME)
values ('{0}', sysdate, 1, 0, '{1}', '{2}', 0, '集团接口', 0, sysdate)", Guid.NewGuid().ToString(), item["NEWCODE"], item["NEWNAME"]);
                        }
                    }
                    else if (item["DONGZ"].ToString() == "更新")
                    {
                        sql = string.Format("update fultbtransportcompany set name='{0}',code='{1}',SYNCTIME=sysdate where name='{2}' and code='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                    }
                    else if (item["DONGZ"].ToString() == "删除")
                    {
                        sql = string.Format("update fultbtransportcompany set isstop=1,SYNCTIME=sysdate where name='{0}' and code='{1}'", item["OLDNAME"], item["OLDCODE"]);
                    }
                    #endregion
                }
                else if (item["LEIX"].ToString() == "煤种")
                {
                    #region 煤种
                    if (item["DONGZ"].ToString() == "增加")
                    {
                        //先查有没有,没有就新增,有就更新
                        DataTable dtTemp = SelfDber.ExecuteDataTable(string.Format("select * from fultbfuelkind where name='{0}' or CompanyCode='{1}'", item["NEWNAME"], item["NEWCODE"]));
                        if (dtTemp != null && dtTemp.Rows.Count > 0)
                        {
                            if (dtTemp.Rows.Count > 1)
                            {
                                output(string.Format("煤种:名称【{0}】,编码【{1}】,查询到多条记录,更新失败!请在系统中检查数据合理性!", item["OLDNAME"], item["OLDCODE"]), eOutputType.Error);
                                continue;
                            }
                            else
                            {
                                sql = string.Format("update fultbfuelkind set name='{0}',CompanyCode='{1}',SYNCTIME=sysdate where name='{2}' and CompanyCode='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                            }
                        }
                        else                         //新增
                        {
                            sql = string.Format(@"insert into fultbfuelkind (ID, CREATIONTIME, CREATORUSERID, ISDELETED, CODE, SORT, NAME, ISSTOP, DATAFROM, PARENTID, SYNCFLAG, COMPANYCODE, SHORTNAME, DATAFLAG, SYNCTIME)
values ('{0}', sysdate, 1, 0, '{1}', 1, '{2}', 0, '集团接口', '-1', 0, '{1}', '{2}', 0, sysdate)", Guid.NewGuid().ToString(), item["NEWCODE"], item["NEWNAME"]);
                        }
                    }
                    else if (item["DONGZ"].ToString() == "更新")
                    {
                        sql = string.Format("update fultbfuelkind set name='{0}',CompanyCode='{1}',SYNCTIME=sysdate where name='{2}' and CompanyCode='{3}'", item["NEWNAME"], item["NEWCODE"], item["OLDNAME"], item["OLDCODE"]);
                    }
                    else if (item["DONGZ"].ToString() == "删除")
                    {
                        sql = string.Format("update fultbfuelkind set isstop=1,SYNCTIME=sysdate where name='{0}' and CompanyCode='{1}'", item["OLDNAME"], item["OLDCODE"]);
                    }
                    #endregion
                }
                if (string.IsNullOrWhiteSpace(sql))
                {
                    continue;
                }
                if (SelfDber.Execute(sql) > 0)
                {
                    output(string.Format("基础信息操作记录处理完成,操作内容:{0},操作动作:{1},修改前编码:{2},修改后编码:{3},修改前名称:{4},修改后名称:{5}", item["LEIX"], item["DONGZ"], item["OLDCODE"], item["NEWCODE"], item["OLDNAME"], item["NEWNAME"]), eOutputType.Normal);
                }
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// 接收车号识别数据,开始翻车逻辑控制
        /// </summary>
        /// <param name="inTrainCarriagePass"></param>
        private void StartTippingTask(CmcsTrainCarriagePass trainCarriagePass)
        {
            Task task = new Task((state) =>
            {
                CmcsTrainCarriagePass inTrainCarriagePass = state as CmcsTrainCarriagePass;
                if (inTrainCarriagePass != null)
                {
                    #region 车号为空时,执行车号补录

                    if (string.IsNullOrEmpty(inTrainCarriagePass.TrainNumber))
                    {
                        Log4Neter.Info(this.trainTipper.EquipmentName + " - 车号识别失败,要求输入车号");

                        this.InvokeEx(() => { Form1.superTabControlManager.ChangeToTab(this.trainTipper.EquipmentCode); });

                        // 弹出输入框,要求输入车厢号
                        FrmInput frmInput = new FrmInput("请输入所翻车厢号", (input) =>
                        {
                            if (string.IsNullOrEmpty(input))
                            {
                                MessageBoxEx.Show("请输入车厢号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return(false);
                            }

                            if (!this.view_TrainTipperQueue_DF.Any(a => a.TrainNumber == input))
                            {
                                MessageBoxEx.Show("在队列中未找到此车,请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return(false);
                            }

                            return(true);
                        });

                        if (frmInput.ShowDialog() == DialogResult.OK)
                        {
                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 用户输入:" + frmInput.Input);
                            inTrainCarriagePass.TrainNumber = frmInput.Input;
                        }
                        else
                        {
                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 用户关闭输入窗口");

                            inTrainCarriagePass.DataFlag = 1;
                            Dbers.GetInstance().SelfDber.Update(inTrainCarriagePass);

                            autoResetEvent.Set();
                        };
                    }

                    #endregion

                    Log4Neter.Info(this.trainTipper.EquipmentName + " - 当前车号:" + inTrainCarriagePass.TrainNumber);
                    commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车号.ToString(), inTrainCarriagePass.TrainNumber);

                    View_TrainTipperQueue selfView_TrainTipperQueue = this.view_TrainTipperQueue_All.FirstOrDefault(a => a.TrainNumber == inTrainCarriagePass.TrainNumber);
                    if (selfView_TrainTipperQueue != null)
                    {
                        commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车Id.ToString(), selfView_TrainTipperQueue.TransportId);

                        if (selfView_TrainTipperQueue.SampleType != eSamplingType.皮带采样.ToString())
                        {
                            // 采样方案中设置为非火车皮采

                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 采样方案中设置为非皮带采样,SampleType=" + selfView_TrainTipperQueue.SampleType);

                            DialogResult dialogResult = MessageBoxEx2Show("<font size='+2'>车号: <font color='red'>" + selfView_TrainTipperQueue.TrainNumber + "</font><br/><br/>该车为" + selfView_TrainTipperQueue.SampleType + "<br/><br/>点击<font color='red'>[是]</font>立即通知皮带采样机停止采样<br/>然后在采样机成功停止后开始翻车<br/><br/>点击<font color='red'>[否]</font>直接开始翻车<br/><br/>点击<font color='red'>[取消]</font>不做任何处理</font>", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                            if (dialogResult == DialogResult.Yes)
                            {
                                if (SendSamplerStopCmd(selfView_TrainTipperQueue))
                                {
                                    // 标记为已处理
                                    ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                                }
                            }
                            else if (dialogResult == DialogResult.No)
                            {
                                // 标记为已处理
                                ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                            }
                        }
                        else
                        {
                            if (MessageBoxEx2Show("<font size='+2'>车号: <font color='red'>" + selfView_TrainTipperQueue.TrainNumber + "</font><br/><br/>点击<font color='red'>[确定]</font>立即通知皮带采样机开始采样<br/>确认采样机启动成功后再开始翻车<br/><br/>点击<font color='red'>[取消]</font>不做任何处理</font>", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
                            {
                                if (SendSamplerStartCmd(selfView_TrainTipperQueue))
                                {
                                    // 标记为已处理
                                    ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                                }
                            }
                        }
                    }
                    else
                    {
                        // 未找到此车

                        commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车Id.ToString(), string.Empty);

                        if (MessageBoxEx2Show("未找到车厢[" + inTrainCarriagePass.TrainNumber + "],是否忽略?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            // 标记车号识别记录为已处理
                            carriageRecognitionerDAO.ChangeTrainCarriagePassToHandled(inTrainCarriagePass.Id);
                        }
                    }
                }

                autoResetEvent.Set();
            }, trainCarriagePass);

            task.Start();
        }