示例#1
0
 public void PushMessage(PhieuCanEntity message)
 {
     if (!_model.IsOpen)
     {
         this.ExchangeName = ConfigAccess.GetExchange();
         this.RoutingKey   = ConfigAccess.GetRoutingKey();
         _model            = Factory.CreateConnection().CreateModel();
     }
     _model.BasicPublish(ExchangeName, RoutingKey, null, Serialize(message));
 }
示例#2
0
        public static MySqlConnection GetDBConnection()
        {
            IniFile myIni = new IniFile("config.ini");

            string host     = myIni.Read("DB_HOST", "Database Config");
            int    port     = Int32.Parse(myIni.Read("DB_PORT", "Database Config"));
            string database = myIni.Read("DB_SCHEMA", "Database Config");
            string username = ConfigAccess.GetDatabaseUsername();
            string password = ConfigAccess.GetDatabasePassword();

            //string username = myIni.Read("DB_USER", "Database Config");
            //string password = myIni.Read("DB_PASS", "Database Config");

            return(DBMySQLUtils.GetDBConnection(host, port, database, username, password));
        }
示例#3
0
 public SendData()
 {
     this.ExchangeName = ConfigAccess.GetExchange();
     this.RoutingKey   = ConfigAccess.GetRoutingKey();
     _model            = Factory.CreateConnection().CreateModel();
 }
示例#4
0
        private static PhieuCanEntity prepareData(int logcanxeId, ref bool isDone)
        {
            PhieuCanEntity phieuCanObj = new PhieuCanEntity();

            MySqlConnection conn2 = DBUtils.GetDBConnection();

            try
            {
                log.Debug("Openning Connection 2...");
                conn2.Open();
                log.Debug("Connection 2 successful!");

                //Query logcanxe
                MySqlCommand logcanxeCmd = conn2.CreateCommand();
                string       logcanxeSql =
                    " SELECT logcanxe_id, logcanxe_thoidiem, logcanxe_V, logcanxe_bienso, " +
                    "   logcanxe_lanxe, logcanxe_imglanxe, logcanxe_imgbienso, " +
                    "   logcanxe_W, logcanxe_ghichu, logcanxe_biensoSMRM " +
                    " FROM tbl_logcanxe " +
                    " WHERE logcanxe_id = @logcanxeId ";
                logcanxeCmd.CommandText = logcanxeSql;

                MySqlParameter logcanxeIdParam = new MySqlParameter("@logcanxeId", SqlDbType.Int);
                logcanxeIdParam.Value = logcanxeId;
                logcanxeCmd.Parameters.Add(logcanxeIdParam);

                DbDataReader reader = logcanxeCmd.ExecuteReader();
                if (reader.HasRows && reader.Read())
                {
                    DateTime thoidiem = reader.GetDateTime(1);
                    double   tocdo    = reader.GetDouble(2);

                    string bienso = "";
                    if (!reader.IsDBNull(3))
                    {
                        bienso = reader.GetString(3).Replace("-", "").Replace(".", "");
                    }

                    int    lanxe           = reader.GetInt32(4);
                    string imgUrlLanxe     = reader.GetString(5);
                    string imgUrlBienso    = reader.GetString(6);
                    double khoiluongThucte = reader.GetDouble(7);
                    string ghichu          = reader.GetString(8);

                    string biensoSMRM = "";
                    if (!reader.IsDBNull(9))
                    {
                        biensoSMRM = reader.GetString(9).Replace("-", "").Replace(".", "");
                    }

                    string[] arrGhichu       = ghichu.Split('|');
                    string   saiso           = arrGhichu.Last().Split(',')[3].Split('=')[1];
                    string   taitrongchophep = arrGhichu.Last().Split(',')[5].Split('=')[1];



                    //fill data to phieuCanEntity
                    String maPhieuCan = ConfigAccess.GetTramCanID() + "." + thoidiem.ToString("yyyyMMddHHmmss") + lanxe;
                    phieuCanObj.MaPhieuCan = maPhieuCan;                  //"TC341.20150131233009" - Mã phiếu theo format: MaTramCan.NamThangNgayGioPhutGiay để đảm bảo tính duy nhất cho toàn hệ thống. Nếu trạm có nhiều làn cân thì thêm số làn ở cuối.
                    phieuCanObj.MaTramCan  = ConfigAccess.GetTramCanID(); //"TC341" - Liên hệ để được admin hệ thống cung cấp mã
                    phieuCanObj.BienSoXe   = bienso;                      //"12C03435" - Biển số xe

                    /*----------------------- BẮT ĐẦU ADD THÔNG TIN ẢNH CHỤP CỦA XE --------------------------*/
                    //List đối tượng ảnh chụp xe (thông thường là 2 ảnh: Ảnh 1 là ảnh chụp làn xe từ camera trước + biển số trước; Ảnh 2 là ảnh chụp làn xe từ camera sau + biển số sau. Định dạnh jpg hoặc png dung lượng khoảng 200-300kb)
                    PhieuCanEntity.AnhPhieuCan imgObj1 = new PhieuCanEntity.AnhPhieuCan();
                    PhieuCanEntity.AnhPhieuCan imgObj2 = new PhieuCanEntity.AnhPhieuCan();
                    try
                    {
                        imgObj1.Anh = Common.FileToBase64(downloadImg(imgUrlLanxe));  //Biểu diễn ảnh dưới dạng chuỗi base64. Lưu ý dùng hàm convert ảnh sang base64 string trong class Common như ở ví dụ này
                                                                                      //"E:\\Pictures\\20151026102552203_1.jpg"
                        imgObj2.Anh = Common.FileToBase64(downloadImg(imgUrlBienso)); //Biểu diễn ảnh dưới dạng chuỗi base64. Lưu ý dùng hàm convert ảnh sang base64 string trong class Common như ở ví dụ này
                                                                                      //Add các ảnh vào trong list
                        phieuCanObj.ImagesList.Add(imgObj1);
                        phieuCanObj.ImagesList.Add(imgObj2);
                    }
                    catch (Exception ex)
                    {
                        log.Info("Error: " + ex.Message);
                    }
                    /*----------------------KẾT THÚC VIỆC ADD THÔNG TIN ẢNH CHỤP CỦA XE --------------------------*/

                    phieuCanObj.TocDoXe            = tocdo;                                    //3.1 - Tốc độ xe đi qua trạm tính theo đơn vị km/h (Ví dụ này xe chạy qua trạm với tốc độ 3.1 km/h)
                    phieuCanObj.ThoiGianXeVaoTram  = thoidiem.ToString("dd/MM/yyyy HH:mm:ss"); //Thời gian xe bắt đầu vào trạm cân. Ví dụ: 11/11/2015 23:29:01
                    phieuCanObj.NgayCan            = thoidiem.ToString("dd/MM/yyyy");          //Ngày cân phiếu này. Ví dụ: 11/11/2015
                    phieuCanObj.HinhThucCan        = 3;                                        //1: Hình thức cân theo tải trọng cầu đường; 2: Hình thức cân theo tải trọng hàng hóa; 3: Hình thức cân tổng hợp (mặc định là 3 - theo thông tư 46)
                    phieuCanObj.KhoiLuongXeThucTe  = khoiluongThucte;                          //49260 - Khối lượng cả xe cân được thực tế (tính bằng kg)
                    phieuCanObj.KhoiLuongXeSaiSo   = double.Parse(saiso);                      //1970 - Khối lượng sai số cả xe cho phép (tính bằng kg)
                    phieuCanObj.KhoiLuongXeChoPhep = double.Parse(taitrongchophep);            //48000 - Khối lượng xe cho phép chở tối đa (tính bằng kg)

                    /*---------------------- BẮT ĐẦU ADD THÔNG TIN CÁC BỘ TRỤC CỦA XE --------------------------*/
                    for (int i = 0; i < arrGhichu.Length - 1; i++)
                    {
                        string[] arrBotruc = arrGhichu[i].Split(',');
                        int      loaitruc  = Int32.Parse(arrBotruc[0].Split('=')[1]);

                        if (loaitruc == 1)
                        {
                            //Bộ trục đơn
                            PhieuCanEntity.BoTruc boTrucDonObj = new PhieuCanEntity.BoTruc();
                            boTrucDonObj.KhoangCachTruc      = "d=0m";                                   //với bộ trục đơn thì khoảng cách trục luôn bằng 0: "d=0m"
                            boTrucDonObj.KhoiLuongChoPhep    = double.Parse(arrBotruc[5].Split('=')[1]); //10000 - Khối lượng cho phép của trục này tính bằng đơn vị kg (ví dụ này trục cho phép chở 10 tấn)
                            boTrucDonObj.KhoiLuongTrucThucTe = double.Parse(arrBotruc[2].Split('=')[1]); //6150 - Khối lượng trục cân được thực tế (ví dụ này khối lượng trục cân được 6.15 tấn)
                            boTrucDonObj.KhoiLuongSaiSo      = double.Parse(arrBotruc[3].Split('=')[1]); //250 - Khối lượng sai số tính bằng kg (ví dụ này thì trục này cho phép sai số 0.25 tấn)
                            boTrucDonObj.LoaiBoTruc          = 1;                                        //Bộ trục đơn ký hiệu là 1, bộ trục đôi là 2, bộ trục 3 là 3.
                            //Add các trục vào bộ trục
                            phieuCanObj.BoTrucs.Add(boTrucDonObj);
                        }
                        else if (loaitruc == 2)
                        {
                            //Bộ trục đôi
                            PhieuCanEntity.BoTruc boTrucDoiObj = new PhieuCanEntity.BoTruc();
                            boTrucDoiObj.KhoangCachTruc      = "d>=1.3m";
                            boTrucDoiObj.KhoiLuongChoPhep    = double.Parse(arrBotruc[5].Split('=')[1]); //Khối lượng cho phép của trục này tính bằng đơn vị kg (ví dụ này trục cho phép chở 18 tấn)
                            boTrucDoiObj.KhoiLuongTrucThucTe = double.Parse(arrBotruc[2].Split('=')[1]); //Khối lượng trục cân được thực tế (ví dụ này khối lượng trục cân được 21.22 tấn)
                            boTrucDoiObj.KhoiLuongSaiSo      = double.Parse(arrBotruc[3].Split('=')[1]); //Khối lượng sai số tính bằng kg (ví dụ này thì trục này cho phép sai số 0.85 tấn)
                            boTrucDoiObj.LoaiBoTruc          = 2;                                        //Bộ trục đơn ký hiệu là 1, bộ trục đôi là 2, bộ trục 3 là 3.
                            //Add các trục vào bộ trục
                            phieuCanObj.BoTrucs.Add(boTrucDoiObj);
                        }
                        else if (loaitruc == 3)
                        {
                            //Bộ trục ba
                            PhieuCanEntity.BoTruc boTrucBaObj = new PhieuCanEntity.BoTruc();
                            boTrucBaObj.KhoangCachTruc      = "d>1.3m";
                            boTrucBaObj.KhoiLuongChoPhep    = double.Parse(arrBotruc[5].Split('=')[1]); //Khối lượng cho phép của trục này tính bằng đơn vị kg (ví dụ này trục cho phép chở 24 tấn)
                            boTrucBaObj.KhoiLuongTrucThucTe = double.Parse(arrBotruc[2].Split('=')[1]); //Khối lượng trục cân được thực tế (ví dụ này khối lượng trục cân được 21.89 tấn)
                            boTrucBaObj.KhoiLuongSaiSo      = double.Parse(arrBotruc[3].Split('=')[1]); //Khối lượng sai số tính bằng kg (ví dụ này thì trục này cho phép sai số 0.87 tấn)
                            boTrucBaObj.LoaiBoTruc          = 3;                                        //Bộ trục đơn ký hiệu là 1, bộ trục đôi là 2, bộ trục 3 là 3.
                            //Add các trục vào bộ trục
                            phieuCanObj.BoTrucs.Add(boTrucBaObj);
                        }
                    }
                    /*----------------------KẾT THÚC VIỆC ADD THÔNG TIN CÁC BỘ TRỤC VÀO PHIẾU CÂN --------------------------*/

                    //Thêm các thông tin bổ sung
                    phieuCanObj.LanCan              = lanxe.ToString(); //"P2" - Làn cân xe (P1,P2,P3,T1,T2,T3...)
                    phieuCanObj.LanCanXe            = "1";              // Lần cân xe
                    phieuCanObj.BienSoRM            = biensoSMRM;       //"15R10886" - Biển số SMRM/RM
                    phieuCanObj.LaXeXiTec           = 0;                // Là xe xi téc chở chất lỏng: 1; Nếu không phải : 0;
                    phieuCanObj.HoTenLaiXe          = "";               // Nguyễn Văn A - Họ tên lái xe
                    phieuCanObj.SoGPLHX             = "";               // GPLHX số
                    phieuCanObj.GhiChu              = "";               // Ghi chú
                    phieuCanObj.NguoiLapPhieu       = "";               //Hoàng Văn B - Người lập phiếu
                    phieuCanObj.MauXe               = "";               //Mầu xe
                    phieuCanObj.GPLX                = "";               //GPLX
                    phieuCanObj.KichThuocBaoVuotD   = 0;                //(Chiều dài kích thước bao vượt – đơn vị mm)
                    phieuCanObj.KichThuocBaoVuotR   = 0;                //(Chiều rộng kích thước bao vượt – đơn vị mm)
                    phieuCanObj.KichThuocBaoVuotC   = 0;                //550 - (Chiều cao kích thước bao vượt – đơn vị mm)
                    phieuCanObj.KichThuocThungVuotD = 0;                //(Chiều dài kích thước thùng vượt – đơn vị mm)
                    phieuCanObj.KichThuocThungVuotR = 0;                //(Chiều rộng kích thước thùng vượt – đơn vị mm)
                    phieuCanObj.KichThuocThungVuotC = 0;                //650 - (Chiều cao kích thước thùng vượt – đơn vị mm)
                }
                isDone = true;
            }
            catch (Exception e)
            {
                isDone = false;
                log.Info("Error: " + e.Message);
            }
            finally
            {
                log.Debug("Closing Connection 2...");
                conn2.Close();
                log.Debug("Connection 2 is closed!");
            }

            return(phieuCanObj);
        }