Newer
Older
SensorHub / SensorHub.Servers / EmsSession.cs
root on 17 Sep 2021 4 KB first commit
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Command;
using SuperSocket.SocketBase.Protocol;
using SensorHub.Model;

namespace SensorHub.Servers
{
    public class EmsSession : AppSession<EmsSession, StringRequestInfo>
    {
        private System.DateTime lastLoginTime;
        private string taskId;
        private string equip;
        private string patrolerName;
        private long patrolerId;
        private bool initial = false;
        private Model.Patroler patroler;
        private Model.Equipment equipment;
        private Model.TaskInfo taskinfo;

        public System.DateTime LastLoginTime
        {
            get { return lastLoginTime; }
            set { lastLoginTime = value; }
        }

        public string EquIp
        {
            get { return equip; }
            set { equip = value; }
        }

        public string TaskId
        {
            get { return taskId; }
            set { taskId = value; }
        }

        public string PatrolerName
        {
            get { return patrolerName; }
            set { patrolerName = value; }
        }

        public long PatrolerId
        {
            get { return patrolerId; }
            set { patrolerId = value; }
        }

        public bool Initial
        {
            get { return initial; }
            set { initial = value; }
        }

        public Model.Patroler Patroler
        {
            get { return patroler; }
            set { patroler = value; }
        }

        public Model.Equipment Equipment
        {
            get { return equipment; }
            set { equipment = value; }
        }

        public Model.TaskInfo Taskinfo
        {
            get { return taskinfo; }
            set { taskinfo = value; }
        }



        protected override void OnSessionStarted()
        {

        }

        protected override void OnSessionClosed(CloseReason reason)
        {
            try
            {
                Logger.Info("########################SessionClosed开始执行###############################");
                if (null != this.equipment)
                {
                    //设备离线时更新人员状态
                    this.patroler.AccountState = "OFFLINE";
                    new BLL.Patroler().setPatrolerAccountStateByName(this.patroler);
                    Logger.Info("将巡检人" + this.patroler.UserName + "状态更新为OFFLINE");

                    //填写离线日志
                    Model.LogInfo logInfoModel = new Model.LogInfo();
                    logInfoModel.Equipment = this.equipment.MacId;
                    logInfoModel.Operate = "离线";
                    logInfoModel.Operate_time = DateTime.Now;
                    logInfoModel.Username = this.patroler.UserName;
                    logInfoModel.Patroler_id = this.patroler.DbId;
                    new BLL.LogInfo().insertLogInfo(logInfoModel);
                    Logger.Info("保存巡检人" + this.patroler.UserName + "操作日志");

                    //修改任务状态
                    Model.TaskInfo task = new BLL.TaskInfo().getTaskInfo(this.taskinfo.DbId);
                    if ("接受任务".Equals(task.TaskState) || "开始任务".Equals(task.TaskState))
                    {
                        task.TaskState = "执行过程中";
                        new BLL.TaskInfo().setTaskInfo(task);
                        Logger.Info("修改巡检人" + this.patroler.UserName + "当前任务状态为'执行过程中'");
                    }
                    else
                    {
                        Logger.Info("巡检人" + this.patroler.UserName + "已经完成任务");
                    }

                }
                Logger.Info("#################SessionClosed关闭成功####################");
                Logger.Info("\n");
                Logger.Info("\n");
                Logger.Info("\n");
            }
            catch (Exception e)
            {
                Logger.Error("#################SessionClosed关闭失败####################");
                Logger.Error(e.ToString());
                Logger.Error("\n");
                Logger.Error("\n");
                Logger.Error("\n");
            }

        }
    }
}