Esempio n. 1
0
        /// <summary>
        /// 拿最新轨迹点去更新加锁表(注意预加锁状态不更新状态...),根据锁号来查询的
        /// </summary>
        /// <param name="gj"></param>
        /// <returns></returns>
        public void UpdateByGJAndGetJS2(GJ gj, ref string preZTBJ, ref JS js)
        {
            /*
            zxjd jd
            zxwd wd
            zxsj dwsj
            zxdy dy
            zxdd dwdd
            ztbj dwzt
             */
            try
            {
                js = SelectBySBBH(gj.SBBH);

                preZTBJ = js.ZTBJ;

                #region 如果处于预加锁状态,不更新状态
                string jsState;
                if (preZTBJ == JS.yjs)
                {
                    jsState = preZTBJ;
                }
                else
                {
                    jsState = GJStateToJSState(gj.DWZT);
                }
                #endregion

                string sql = string.Format("update FDSGLXT_JSJLB set zxjd='{0}',zxwd='{1}',zxsj=to_date('{2}','yyyy/mm/dd hh24:mi:ss'),zxdd='{3}',zxddid='{4}',ztbj='{5}',zxdy='{6}' where sbbh='{7}'",
                    gj.JD, gj.WD, gj.DWSJ, gj.DWDD, gj.DWDDID, jsState, gj.DY, gj.SBBH);

                jsDal.Update(sql);

                //更新js状态
                js.ZTBJ = jsState;
                js.ZXJD = gj.JD;
                js.ZXWD = gj.WD;
                js.ZXSJ = gj.DWSJ;
                js.ZXDD = gj.DWDD;
                js.ZXDDID = gj.DWDDID;
                js.ZXDY = gj.DY;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 插入已load的gj点,若空则是已load
        /// </summary>
        /// <returns></returns>
        public void Insert(GJ gj)
        {
            try
            {
                string sql = string.Format("insert into FDS_GJB(ID,DWSJ,DWDD,DWDDID,JD,WD,DWZT,DY,SBBH) values('{0}',to_date('{1}','yyyy/mm/dd hh24:mi:ss'),'{2}','{3}','{4}','{5}','{6}','{7}','{8}')",
                        gj.ID, gj.DWSJ, gj.DWDD, gj.DWDDID, gj.JD, gj.WD, gj.DWZT, gj.DY, gj.SBBH);
                gjDal.Insert(sql);

                sql = string.Format("insert into FDS_GJB_BACKUP(ID,DWSJ,DWDD,DWDDID,JD,WD,DWZT,DY,SBBH) values('{0}',to_date('{1}','yyyy/mm/dd hh24:mi:ss'),'{2}','{3}','{4}','{5}','{6}','{7}','{8}')",
                        gj.ID, gj.DWSJ, gj.DWDD, gj.DWDDID, gj.JD, gj.WD, gj.DWZT, gj.DY, gj.SBBH);
                gjDal.Insert(sql);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 3
0
        private GJ LoadEntity(DataRow dr)
        {
            GJ gj = new GJ();

            gj.ID = dr["ID"].ToString();
            gj.DWSJ = dr["DWSJ"].ToString();
            gj.JD = dr["JD"].ToString();
            gj.WD = dr["WD"].ToString();

            gj.DWZT = dr["DWZT"].ToString();
            gj.DWDDID = dr["DWDDID"].ToString();
            gj.DWDD = dr["DWDD"].ToString();
            gj.DY = dr["DY"].ToString();
            gj.SBBH = dr["SBBH"].ToString();

            return gj;
        }
Esempio n. 4
0
 public GJ LoadGJ(string str)
 {
     try
     {
         string[] strs = str.Split(' ');
         GJ gj = new GJ();
         gj.ID = Guid.NewGuid().ToString();
         gj.SBBH = strs[0];
         gj.DWZT = strs[1];
         gj.DWSJ = strs[2] + " " + strs[3];
         gj.JD = strs[4];
         gj.WD = strs[5];
         gj.DY = "5";
         //gj.DWDD = positionService.GetNear(Convert.ToDouble(gj.JD), Convert.ToDouble(gj.WD));
         return gj;
     }
     catch (Exception e)
     {
         throw new Exception(e.Message + " 载入轨迹点失败!");
     }
 }
        public void Oper(string sp = "")
        {
            try
            {
#if debug
            GJ gj = new GJ();
            gj.JD = "100";
            gj.WD = "100";
            gj.ID = Guid.NewGuid().ToString();
            gj.SBBH = "test";
            gj.DWSJ = DateTime.Now.ToString();
            gj.DWZT = GJ.ps;
            gj.DY = "dy";
#else
                GJ gj = gjService.LoadGJ(sp);
#endif
                //插入解析数据于数据库
                string stmp="";
                gj.DWDDID = positionService.GetNear(Convert.ToDouble(gj.JD), Convert.ToDouble(gj.WD), ref stmp);
                gj.DWDD = stmp;
                
                gjService.Insert(gj);

                //根据轨迹点更新加锁表. 注意:加锁表需要存在
                JS js = null;
                string preZTBJ = null;
#if debug
                jsService.UpdateByGJAndGetJS2(gj, ref preZTBJ, ref js);
#else
                jsService.UpdateByGJAndGetJS2(gj, ref preZTBJ, ref js);
#endif
                //加锁
                if (gj.DWZT == GJ.js)
                {
                    //获得id
                    //给手机sjh,发送: sh已经加在ch上
                    //调用发出外网...再短信服务...
                    //string sjh = czryService.GetSJHFromID(js.HQHYYID);
                    //string sh = js.SH;
                    //string ch = js.CH;
                    //string str = sjh + " " + sh + " " + ch + " 加锁";
                    //LogService.Mess(str, @"d:\wwlog\IntranetService");
                    //dxService.Insert(js.HQHYYID, gj.DWSJ, str, DX.js);
                    
                }
                // 破锁,未预先确认破锁就破了
                else if (preZTBJ != JS.cs && gj.DWZT == GJ.ps)
                {
                    //string sjh1 = czryService.GetSJHFromID(js.CZID);
                    //string sjh2 = czryService.GetSJHFromID(js.HYZRID);
                    string sh = js.SH;
                    string ch = js.CH;

                    //string str = sjh1 + " " + sh + " " + ch + " 破锁";
                    //LogService.Mess(str, @"d:\wwlog\IntranetService");
                    //dxService.Insert(js.CZID, gj.DWSJ, str, DX.ps);
                    //str = sjh2 + " " + sh + " " + ch + " 破锁";
                    //LogService.Mess(str, @"d:\wwlog\IntranetService");
                    //dxService.Insert(js.HYZRID, gj.DWSJ, str, DX.ps);

                    //取出轨迹点,组合成历史记录... 

                    string gjStr = gjService.GetGJStr(js.SBBH, js.JSSJ);

                    //更新将其跟新为一个新的历史记录...

                    jslsService.Insert(js, gjStr);

                    //将破锁信息存储...补封操作更新新锁号信息,状态标记为加锁

                    //psService.Insert(gj.DWSJ, gj.DWDDID);

                }
                //确认拆锁
                else if (preZTBJ == JS.cs && gj.DWZT == GJ.ps)
                {
                    //取出轨迹点,组合成历史记录... 

                    string gjStr = gjService.GetGJStr(js.SBBH, js.JSSJ);

                    //更新将其跟新为一个新的历史记录...

                    jslsService.Insert(js, gjStr);

                    // 直接删了...
                    jsService.XiaoHao(js.SBBH);
                }
            }
            catch (Exception e)
            {
                //Console.WriteLine(e.Message);
                LogService.Mess(e.Message, @"d:\wwlog\fwException");
            }
        }