示例#1
0
        private void ReleaseGPSEquipment(string keyValue)
        {
            #region 定位数据发送
            int    Port    = 0;
            string IP      = CacheFactory.Cache().GetCache <string>("SocketUrl:IP");
            string PostStr = CacheFactory.Cache().GetCache <string>("SocketUrl:Port");
            if (!string.IsNullOrEmpty(PostStr))
            {
                Port = Convert.ToInt32(PostStr);
            }
            if (string.IsNullOrEmpty(IP) || Port == 0)
            {
                var data = dataItemDetailBLL.GetDataItemListByItemCode("'SocketUrl'");
                foreach (var item in data)
                {
                    if (item.ItemName == "IP")
                    {
                        IP = item.ItemValue;
                        CacheFactory.Cache().WriteCache <string>(item.ItemValue, "SocketUrl:IP");
                    }
                    else if (item.ItemName == "Port")
                    {
                        Port = Convert.ToInt32(item.ItemValue);
                        CacheFactory.Cache().WriteCache <string>(item.ItemValue, "SocketUrl:Port");
                    }
                }
            }
            CarAlgorithmEntity car = new CarAlgorithmEntity();
            car.ID    = keyValue;
            car.State = 1;
            SocketHelper.SendMsg(car.ToJson(), IP, Port);

            #endregion
        }
示例#2
0
        public ActionResult CarOut(string keyValue, string Note, int type, List <PersongpsEntity> pergps)
        {
            //根据危化品类型添加二级节点
            var    data = dataItemDetailBLL.GetDataItemListByItemCode("'SocketUrl'");
            string IP   = "";
            int    Port = 0;

            foreach (var item in data)
            {
                if (item.ItemName == "IP")
                {
                    IP = item.ItemValue;
                }
                else if (item.ItemName == "Port")
                {
                    Port = Convert.ToInt32(item.ItemValue);
                }
            }
            visitcarbll.CarOut(keyValue, Note, type, pergps);
            CarAlgorithmEntity Car = new CarAlgorithmEntity();

            Car.ID    = keyValue;
            Car.State = 1;
            SocketHelper.SendMsg(Car.ToJson(), IP, Port);

            DataItemDetailBLL pdata = new DataItemDetailBLL();
            string            key   = string.Empty;       // "21049470";
            string            sign  = string.Empty;       // "4gZkNoh3W92X6C66Rb6X";
            var pitem = pdata.GetItemValue("Hikappkey");  //海康服务器密钥
            var url   = pdata.GetItemValue("HikBaseUrl"); //海康服务器地址

            if (!string.IsNullOrEmpty(pitem))
            {
                key  = pitem.Split('|')[0];
                sign = pitem.Split('|')[1];
            }

            if (type == 0)
            {
                VisitcarEntity car = visitcarbll.GetEntity(keyValue);
                HikOut(url, key, sign, car.CarNo);
            }
            else if (type == 1)
            {
                OperticketmanagerBLL    obll = new OperticketmanagerBLL();
                OperticketmanagerEntity op   = obll.GetEntity(keyValue);
                HikOut(url, key, sign, op.Platenumber);
            }
            else if (type == 2)
            {
                HazardouscarBLL    hbll = new HazardouscarBLL();
                HazardouscarEntity ha   = hbll.GetEntity(keyValue);
                HikOut(url, key, sign, ha.CarNo);
            }
            return(Success("操作成功。"));
        }
示例#3
0
        /// <summary>
        /// 初始化拜访\危化品\物料车辆
        /// </summary>
        /// <returns></returns>
        public List <CarAlgorithmEntity> IniVHOCar()
        {
            //将该车1小时内的打卡记录都变为已进场
            Repository <CarAlgorithmEntity> inlogdb = new Repository <CarAlgorithmEntity>(DbFactory.Base());
            string sql = string.Format(
                "select * from (select ID,carno,gpsid,gpsname,linename,'3' as type,'0' as State,'' as GoodsName from bis_visitcar where state='3'" +
                "union all" +
                " select ID,carno,gpsid,gpsname,HazardousName as linename,'5' as type,'0' as State,'' as GoodsName from bis_hazardouscar where state='3')");
            List <CarAlgorithmEntity>            CarList = inlogdb.FindList(sql).ToList();
            Repository <OperticketmanagerEntity> wldb    = new Repository <OperticketmanagerEntity>(DbFactory.Base());
            List <OperticketmanagerEntity>       wllist  = wldb.IQueryable(it => it.ExamineStatus == 3).ToList();

            if (wllist.Count > 0)
            {
                foreach (var op in wllist)
                {
                    CarAlgorithmEntity Car = new CarAlgorithmEntity();
                    Car.CarNo   = op.Platenumber;
                    Car.GPSID   = op.GpsId;
                    Car.GPSName = op.GpsName;
                    Car.ID      = op.ID;
                    Car.State   = 0;
                    Car.Type    = 4;
                    string Dress = op.Dress;
                    Car.GoodsName = Dress;
                    int    ISwharf       = op.ISwharf;
                    string Transporttype = op.Transporttype;
                    if (Transporttype == "提货")
                    {
                        Car.LineName = op.Dress + Transporttype;
                        if (ISwharf == 1)
                        {
                            Car.LineName += "(码头)";
                        }
                    }
                    else
                    {
                        if (ISwharf == 1)
                        {
                            Car.LineName = "物料转运(码头)";
                        }
                        else
                        {
                            Car.LineName = "转运(纯称重)";
                        }
                    }
                    CarList.Add(Car);
                }
            }

            return(CarList);
        }
示例#4
0
 /// <summary>
 /// 删除数据
 /// </summary>
 /// <param name="keyValue">主键</param>
 public void RemoveForm(string keyValue, string IP, int Port)
 {
     try
     {
         var data = this.BaseRepository().FindEntity(keyValue);
         if (data != null)
         {//同步删除海康平台车辆
             OperHaiKangRecord(data, 2, "");
         }
         this.BaseRepository().Delete(keyValue);
         //给计算模块发送出厂删除指令
         CarAlgorithmEntity Car = new CarAlgorithmEntity();
         Car.ID    = keyValue;
         Car.State = 1;
         SocketHelper.SendMsg(Car.ToJson(), IP, Port);
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#5
0
        /// <summary>
        /// 保存表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        public void SaveForm(string keyValue, CarinfoEntity entity, string pitem, string url, string IP, int Port)
        {
            //开始事物
            var res = DbFactory.Base().BeginTrans();

            try
            {
                //string key = string.Empty;// "21049470";
                //string sign = string.Empty;// "4gZkNoh3W92X6C66Rb6X";
                //if (!string.IsNullOrEmpty(pitem))
                //{
                //    key = pitem.Split('|')[0];
                //    sign = pitem.Split('|')[1];
                //}

                if (!string.IsNullOrEmpty(keyValue))
                {
                    //将该车1小时内的打卡记录都变为已进场
                    Repository <CarinfoEntity> inlogdb = new Repository <CarinfoEntity>(DbFactory.Base());
                    CarinfoEntity old = inlogdb.FindEntity(keyValue);
                    //判断是否修改GPS信息,如果修改则相应的修改GPS信息数据
                    if (entity.GpsId != null && old.GpsId != entity.GpsId && entity.GpsId.Trim() != "")
                    {
                        string sql = string.Format(@"update bis_cargps set gpsid='{0}',gpsname='{1}' where aid='{2}'", entity.GpsId, entity.GpsName, entity.ID);
                        res.ExecuteBySql(sql);
                    }
                    else if (entity.GpsId == null && old.GpsId != entity.GpsId)
                    {
                        string sql = string.Format(@"update bis_cargps set gpsid='{0}',gpsname='{1}' where aid='{2}'", "", "", entity.ID);
                        res.ExecuteBySql(sql);
                    }

                    entity.Modify(keyValue);
                    if (string.IsNullOrEmpty(entity.Dirver))
                    {
                        entity.Dirver = "";
                    }
                    if (string.IsNullOrEmpty(entity.Remark))
                    {
                        entity.Remark = "";
                    }
                    if (string.IsNullOrEmpty(entity.Phone))
                    {
                        entity.Phone = "";
                    }

                    res.Update <CarinfoEntity>(entity);

                    #region 根据车辆车牌号码同步修改海康那边的车辆数据
                    var data = this.BaseRepository().FindEntity(keyValue);
                    if (data != null)
                    {
                        OperHaiKangRecord(entity, 1, data.CarNo);
                    }
                    #endregion
                    res.Commit();
                    if (!string.IsNullOrEmpty(entity.GpsId) && !string.IsNullOrEmpty(entity.GpsName))
                    {
                        CarAlgorithmEntity Car = new CarAlgorithmEntity();
                        Car.CarNo     = entity.CarNo;
                        Car.GPSID     = entity.GpsId;
                        Car.GPSName   = entity.GpsName;
                        Car.ID        = entity.ID;
                        Car.Type      = Convert.ToInt32(entity.Type);
                        Car.State     = 0;
                        Car.LineName  = "";
                        Car.GoodsName = "";
                        SocketHelper.SendMsg(Car.ToJson(), IP, Port);
                    }
                }
                else
                {
                    entity.Create();
                    #region 先添加海康车辆
                    //var model = new
                    //{
                    //    clientId = 1,
                    //    plateNo = entity.CarNo

                    //};
                    //List<object> modellist = new List<object>();
                    //modellist.Add(model);
                    //string addMsg = SocketHelper.LoadCameraList(model, url, "/artemis/api/resource/v1/vehicle/batch/add", key, sign);
                    //AddCarMsg addcar = JsonConvert.DeserializeObject<AddCarMsg>(addMsg);
                    //if (addcar != null && addcar.code == "0" && addcar.data.successes.Count > 0)
                    //{
                    //    entity.ID = addcar.data.successes[0].vehicleId;
                    //}
                    OperHaiKangRecord(entity, 0, "");
                    #endregion
                    res.Insert <CarinfoEntity>(entity);
                    CargpsEntity gps = new CargpsEntity();
                    gps.AID     = entity.ID;
                    gps.CarNo   = entity.CarNo;
                    gps.GpsId   = entity.GpsId;
                    gps.GpsName = entity.GpsName;
                    gps.Status  = 0;
                    gps.Type    = 0;
                    gps.Create();
                    res.Insert <CargpsEntity>(gps);
                    res.Commit();

                    if (!string.IsNullOrEmpty(entity.GpsId) && !string.IsNullOrEmpty(entity.GpsName))
                    {
                        CarAlgorithmEntity Car = new CarAlgorithmEntity();
                        Car.CarNo     = entity.CarNo;
                        Car.GPSID     = entity.GpsId;
                        Car.GPSName   = entity.GpsName;
                        Car.ID        = entity.ID;
                        Car.Type      = Convert.ToInt32(entity.Type);
                        Car.State     = 0;
                        Car.LineName  = "";
                        Car.GoodsName = "";
                        SocketHelper.SendMsg(Car.ToJson(), IP, Port);
                    }
                }
            }
            catch (Exception ex)
            {
                res.Rollback();
                throw ex;
            }
        }
示例#6
0
        public ActionResult ChangeState(string keyvalue, int type, int state)
        {
            //根据危化品类型添加二级节点
            #region 获取编码管理配置信息
            var    data = dataItemDetailBLL.GetDataItemListByItemCode("'SocketUrl'");
            string IP   = "";
            int    Port = 0;
            foreach (var item in data)
            {
                if (item.ItemName == "IP")
                {
                    IP = item.ItemValue;
                }
                else if (item.ItemName == "Port")
                {
                    Port = Convert.ToInt32(item.ItemValue);
                }
            }

            DataItemDetailBLL pdata = new DataItemDetailBLL();
            string            key   = string.Empty;         // "21049470";
            string            sign  = string.Empty;         // "4gZkNoh3W92X6C66Rb6X";
            var pitem   = pdata.GetItemValue("Hikappkey");  //海康服务器密钥
            var baseurl = pdata.GetItemValue("HikBaseUrl"); //海康服务器地址
            if (!string.IsNullOrEmpty(pitem))
            {
                key  = pitem.Split('|')[0];
                sign = pitem.Split('|')[1];
            }
            #endregion
            state++;
            if (type == 0)
            {//拜访车辆
                VisitcarEntity car = visitcarbll.GetEntity(keyvalue);
                car.State  = state;
                car.InTime = DateTime.Now;
                visitcarbll.SaveForm(keyvalue, car);
                CarAlgorithmEntity Car = new CarAlgorithmEntity();
                Car.CarNo     = car.CarNo;
                Car.GPSID     = car.GPSID;
                Car.GPSName   = car.GPSNAME;
                Car.ID        = car.ID;
                Car.Type      = 3;
                Car.State     = 0;
                Car.LineName  = car.LineName;
                Car.GoodsName = "";
                SocketHelper.SendMsg(Car.ToJson(), IP, Port);
                //车辆放行 (疫情期间此功能暂时屏蔽)
                //AddCarpermission(baseurl, key, sign, car.CarNo, car.Phone, car.Dirver);
                var baselist = CarUserbll.addUserJurisdiction(keyvalue, state, baseurl, key, sign);
                return(Content(baselist.ToJson()));
            }
            else if (type == 3)
            {//拜访人员
                CarUserEntity car = CarUserbll.GetEntity(keyvalue);
                car.State  = type;
                car.InTime = DateTime.Now;
                CarUserbll.SaveForm(keyvalue, car, null);
                //人员添加出入权限
                var baselist = CarUserbll.addUserJurisdiction(keyvalue, state, baseurl, key, sign);
                return(Content(baselist.ToJson()));
            }
            else if (type == 1)
            {//物料车辆
                string parkNames             = "1号岗,二号地磅";
                OperticketmanagerBLL    obll = new OperticketmanagerBLL();
                OperticketmanagerEntity op   = obll.GetEntity(keyvalue);
                op.ExamineStatus = state;
                if (state == 3)
                {
                    op.Getdata = DateTime.Now;
                }
                obll.SaveForm(keyvalue, op);
                CarAlgorithmEntity Car = new CarAlgorithmEntity();
                Car.CarNo   = op.Platenumber;
                Car.GPSID   = op.GpsId;
                Car.GPSName = op.GpsName;
                Car.ID      = op.ID;
                Car.State   = 0;
                Car.Type    = 4;
                string Dress = op.Dress;
                Car.GoodsName = Dress;
                int    ISwharf       = op.ISwharf;
                string Transporttype = op.Transporttype;
                if (Transporttype == "提货")
                {
                    Car.LineName = op.Dress + Transporttype;
                    if (ISwharf == 1)
                    {
                        Car.LineName += "(码头)";
                        parkNames    += ",码头岗";
                    }
                }
                else
                {
                    if (ISwharf == 1)
                    {
                        Car.LineName = "物料转运(码头)";
                        parkNames   += ",码头岗";
                    }
                    else
                    {
                        Car.LineName = "转运(纯称重)";
                    }
                }
                SocketHelper.SendMsg(Car.ToJson(), IP, Port);
                //车辆放行
                AddCarpermission(baseurl, key, sign, op.Platenumber, op.DriverName, op.DriverTel, parkNames);
                return(Success("操作成功。"));
            }
            else
            {//危化品车辆
                HazardouscarBLL    hbll = new HazardouscarBLL();
                HazardouscarEntity ha   = hbll.GetEntity(keyvalue);
                ha.State  = state;
                ha.InTime = DateTime.Now;
                hbll.Update(keyvalue, ha);
                CarAlgorithmEntity Car = new CarAlgorithmEntity();
                Car.CarNo     = ha.CarNo;
                Car.GPSID     = ha.GPSID;
                Car.GPSName   = ha.GPSNAME;
                Car.ID        = ha.ID;
                Car.Type      = 5;
                Car.State     = 0;
                Car.LineName  = ha.HazardousName;
                Car.GoodsName = ha.HazardousName;
                SocketHelper.SendMsg(Car.ToJson(), IP, Port);
                //车辆放行
                CarIn(baseurl, key, sign, ha.CarNo, ha.Phone, ha.Dirver);
                //人员添加出入权限
                var baselist = CarUserbll.addUserJurisdiction(keyvalue, state, baseurl, key, sign);
                return(Content(baselist.ToJson()));
            }
        }
        private void BindGPSEquipment(OperticketmanagerEntity entity)
        {
            #region 定位数据发送
            int    Port    = 0;
            string IP      = CacheFactory.Cache().GetCache <string>("SocketUrl:IP");
            string PostStr = CacheFactory.Cache().GetCache <string>("SocketUrl:Port");
            if (!string.IsNullOrEmpty(PostStr))
            {
                Port = Convert.ToInt32(PostStr);
            }
            if (string.IsNullOrEmpty(IP) || Port == 0)
            {
                var data = dataItemDetailBLL.GetDataItemListByItemCode("'SocketUrl'");
                foreach (var item in data)
                {
                    if (item.ItemName == "IP")
                    {
                        IP = item.ItemValue;
                        CacheFactory.Cache().WriteCache <string>(item.ItemValue, "SocketUrl:IP");
                    }
                    else if (item.ItemName == "Port")
                    {
                        Port = Convert.ToInt32(item.ItemValue);
                        CacheFactory.Cache().WriteCache <string>(item.ItemValue, "SocketUrl:Port");
                    }
                }
            }
            #endregion

            string key     = CacheFactory.Cache().GetCache <string>("Hik:key");  // "21049470";
            string sign    = CacheFactory.Cache().GetCache <string>("Hik:sign"); // "4gZkNoh3W92X6C66Rb6X";
            string baseUrl = CacheFactory.Cache().GetCache <string>("Hik:baseUrl");
            if (string.IsNullOrEmpty(key) || string.IsNullOrEmpty(key))
            {
                var pitem = dataItemDetailBLL.GetItemValue("Hikappkey");//海康服务器密钥
                if (!string.IsNullOrEmpty(pitem))
                {
                    key  = pitem.Split('|')[0];
                    sign = pitem.Split('|')[1];
                    CacheFactory.Cache().WriteCache <string>(key, "Hik:key");
                    CacheFactory.Cache().WriteCache <string>(sign, "Hik:sign");
                }
            }
            if (string.IsNullOrEmpty(baseUrl))
            {
                baseUrl = dataItemDetailBLL.GetItemValue("HikBaseUrl");//海康服务器地址
                CacheFactory.Cache().WriteCache <string>(baseUrl, "Hik:baseUrl");
            }

            string parkNames = "1号岗,二号地磅";
            entity.ExamineStatus = 3;
            if (!entity.Getdata.HasValue)
            {
                entity.Getdata = DateTime.Now;
            }

            operticketmanagerbll.SaveForm(entity.ID, entity);
            if (!string.IsNullOrEmpty(entity.GpsId))
            {
                CarAlgorithmEntity Car = new CarAlgorithmEntity();
                Car.CarNo   = entity.Platenumber;
                Car.GPSID   = entity.GpsId;
                Car.GPSName = entity.GpsName;
                Car.ID      = entity.ID;
                Car.State   = 0;
                Car.Type    = 4;
                if (entity.Transporttype == "提货")
                {
                    Car.LineName = entity.Dress + entity.Transporttype;
                    if (entity.ShipLoading == 1)
                    {
                        Car.LineName += "(码头)";
                        parkNames    += ",码头岗";
                    }
                }
                else
                {
                    if (entity.ShipLoading == 1)
                    {
                        Car.LineName = "物料转运(码头)";
                        parkNames   += ",码头岗";
                    }
                    else
                    {
                        Car.LineName = "转运(纯称重)";
                    }
                }
                SocketHelper.SendMsg(Car.ToJson(), IP, Port);
            }
            //车辆放行
            AddCarpermission(baseUrl, key, sign, entity.Platenumber, entity.DriverTel, entity.DriverName, parkNames);
        }