Esempio n. 1
0
        /// <summary>
        /// 显示客户端APP连接列表
        /// </summary>
        /// <param name="Code"></param>
        /// <param name="Name"></param>
        /// <param name="Ip"></param>
        /// <param name="isConnect"></param>
        private void ShowTerminalConnect(string Code, string Name, string Ip, bool isConnect)
        {
            P_UserInfo user = null;

            if (String.IsNullOrEmpty(Code))
            { //如果Code为空,则认为P_User表中没有该用户
                user = null;
            }
            else
            {
                user = new LoginBLL().GetUserById(Code);//根据编码Code(即ID字段)获取对应User实体
            }
            ShowTerminalConnectListView(Code, Name, Ip, isConnect, listView2, user);
        }
        /// <summary>
        /// 获取所有用户
        /// </summary>
        /// <returns></returns>
        public List <P_UserInfo> GetAllUserList()
        {
            List <P_UserInfo> list = new List <P_UserInfo>();
            StringBuilder     sb   = new StringBuilder();

            sb.Append(" select pu.* ");
            sb.Append(@"   
                        from P_User pu");
            sb.Append(@"
                        where 1=1 ");
            try
            {
                DataSet ds = SqlHelper.ExecuteDataSet(SqlHelper.MainConnectionString, CommandType.Text, sb.ToString(), null);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        P_UserInfo info = new P_UserInfo();
                        info.ID        = Convert.ToInt32(dr["ID"].ToString());
                        info.DepID     = Convert.ToInt32(dr["DepID"].ToString());
                        info.LoginName = dr["LoginName"].ToString();
                        info.PassWord  = dr["PassWord"].ToString();
                        info.WorkCode  = dr["WorkCode"].ToString();
                        info.Name      = dr["Name"].ToString();
                        info.Gender    = dr["Gender"].ToString();
                        info.IsActive  = Convert.ToBoolean(dr["IsActive"]);
                        info.SN        = Convert.ToInt32(dr["SN"].ToString());
                        info.IMEI      = dr["IMEI"].ToString();
                        info.RFID      = dr["RFID"].ToString();
                        info.LoginTel  = dr["LoginTel"].ToString();

                        list.Add(info);
                    }
                }
                return(list);
            }
            catch (Exception ex)
            {
                LogUtility.Error("DealInnerCommDAL/GetAllUserList", "获取出错:" + ex.Message);
                return(null);
            }
        }
Esempio n. 3
0
        //public string Login(string LoginName, string PassWord)
        //{
        //    //throw new NotImplementedException();
        //    /*
        //     * 1. 根据用户名密查询用户是否存在
        //     * 2. 根据用户ID查找所用权限
        //     */
        //    string pwdMd5 = SecurityHelper.GetMD5(PassWord);  //MD5
        //    LoginDAL dal = new LoginDAL();
        //    P_UserInfo user = dal.Login(LoginName, pwdMd5);
        //    if (user != null)
        //    {
        //        //2016-11-28 zch
        //        //dealSeesion(user); //存session
        //        string responseString = jser.Serialize(user); //转JSON字符串
        //        return responseString;
        //    }
        //    else {
        //        return "登录失败!用户名或者密码错误!";
        //    }
        //}

        public P_UserInfo Login(string LoginName, string PassWord, ref string resultLogin)
        {
            /*
             * 1. 根据用户名密查询用户是否存在
             * 2. 根据用户ID查找所用权限
             */
            string     pwdMd5 = SecurityHelper.GetMD5(PassWord); //MD5
            LoginDAL   dal    = new LoginDAL();
            P_UserInfo user   = dal.Login(LoginName, pwdMd5);

            if (user != null)
            {
                //2016-11-28 zch
                //dealSeesion(user); //存session
                resultLogin = "******";
                return(user);
            }
            else
            {
                resultLogin = "******";
                return(null);
            }
        }
        /// <summary>
        /// 接收消息 来自RFID客户端 APP
        /// </summary>
        public void ReceiveHttpData()
        {
            Stream               body           = request.InputStream;        //获取客户端发送请求的包含正文数据的流
            Encoding             encoding       = request.ContentEncoding;    //获取随请求发送的数据的内容编码
            StreamReader         reader         = null;
            JavaScriptSerializer serializer     = new JavaScriptSerializer(); //JSON序列化与反序列化类
            string               bodyStr        = "";
            string               decoderContent = "";                         //存储bodyStr解码后的字符

            try
            {
                reader  = new StreamReader(body, Encoding.UTF8); //用指定的字符编码为指定的流初始化 System.IO.StreamReader 类的一个新实例。
                bodyStr = reader.ReadToEnd();                    //读取流,返回字符串
                if (bodyStr.Trim() != "")
                {
                    decoderContent = HttpUtility.UrlDecode(bodyStr, Encoding.UTF8); //使用指定的编码对象将 URL 编码的字符串转换为已解码的字符串
                    //OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到http请求推送的数据:" + decoderContent);//20200410注释:如登录请求会暴露登录名、密码等敏感信息
                    //客户端使用JSON 传参
                    TDataSimpleInfo tdataInfo = serializer.Deserialize <TDataSimpleInfo>(decoderContent);         //JSON字符串转JSON对象--客户端键值对形式会转换报错
                    OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到http请求,请求消息类型:" + tdataInfo.MessageType); //edit 20200410plq:只显示请求类型信息

                    TAppHttpResponseInfo responseInfo = new TAppHttpResponseInfo();                               //new 请求响应消息实体
                    switch (tdataInfo.MessageType)                                                                //判断请求消息类型
                    {
                    case "LoginResquest":                                                                         //登录请求
                        LoginBLL   bll         = new LoginBLL();
                        LoginInfo  loginInfo   = serializer.Deserialize <LoginInfo>(tdataInfo.Content);           //序列化请求消息内容
                        string     LoginName   = loginInfo.LoginName;                                             //登录名
                        string     PassWord    = loginInfo.PassWord;                                              //密码
                        string     resultLogin = "";                                                              //用来接收登录结果字符串
                        P_UserInfo user        = bll.Login(LoginName, PassWord, ref resultLogin);                 //根据登录名、密码获取对应用户
                        OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "App人员[" + LoginName + "]请求登录!处理结果:" + resultLogin);
                        LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到LoginResquest登录请求!处理结果:" + resultLogin);
                        if (user != null)
                        {
                            //response.StatusCode = 200;
                            responseInfo.msgType   = "LoginResponse";            //响应消息类型
                            responseInfo.isSuccess = true;                       //是否成功
                            responseInfo.Content   = serializer.Serialize(user); //响应消息内容--JSON字符串
                        }
                        else
                        {
                            //response.StatusCode = 500;
                            responseInfo.msgType   = "LoginResponse";     //响应消息类型
                            responseInfo.isSuccess = false;               //是否成功
                            responseInfo.Content   = resultLogin;         //响应消息内容--JSON字符串
                        }
                        ReturnHttpDataWithSerial(responseInfo, response); //返回响应消息
                        break;

                    case "GetCarCoupletRequest":     //获取车辆物联列表请求,Content为""
                        RfidStorageBLL rsBll      = new RfidStorageBLL();
                        string         ref_errMsg = "";
                        List <RfidStorage_AmbulanceInfo> rs_AList = rsBll.GetCarCoupletList(ref ref_errMsg);
                        if (ref_errMsg.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetCarCoupletResponse";        //响应消息类型
                            responseInfo.isSuccess = true;                           //是否成功
                            responseInfo.Content   = serializer.Serialize(rs_AList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetCarCoupletRequest请求车辆物联列表数据!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetCarCoupletResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                   //是否成功
                            responseInfo.Content   = ref_errMsg;              //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetCarCoupletRequest请求车辆物联列表数据!返回值失败,原因:" + ref_errMsg);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetCarCoupletRequest请求车辆物联列表数据!返回值失败,原因:" + ref_errMsg);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetObjectAssociationResquest":     //获取仓库物联列表请求,Content为""
                        RfidStorageBLL rfsBll      = new RfidStorageBLL();
                        string         ref_errMsg2 = "";
                        List <RfidStorage_StorageInfo> rfs_AList = rfsBll.GetObjectAssociationList(ref ref_errMsg2);
                        if (ref_errMsg2.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetObjectAssociationResponse";  //响应消息类型
                            responseInfo.isSuccess = true;                            //是否成功
                            responseInfo.Content   = serializer.Serialize(rfs_AList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetObjectAssociationResquest请求仓库物联列表数据!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetObjectAssociationResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                          //是否成功
                            responseInfo.Content   = ref_errMsg2;                    //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetObjectAssociationResquest请求仓库物联列表数据!返回值失败,原因:" + ref_errMsg2);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetObjectAssociationResquest请求仓库物联列表数据!返回值失败,原因:" + ref_errMsg2);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetBindEquipmentRequest":     //获取对应仓库(目前车辆和分站都是在FIXED_Storage表中维护)的设备列表---是否要添加报废丢失设备过滤
                        RfidMaterialBLL rmBll = new RfidMaterialBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo berInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string CangKuID                  = berInfo.CangKuID; //仓库ID
                        string ref_errMsg_gbe            = "";
                        List <FIXED_MatetialInfo> fmList = rmBll.GetBindEquipmentList(CangKuID, ref ref_errMsg_gbe);
                        if (ref_errMsg_gbe.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetBindEquipmentResponse";   //响应消息类型
                            responseInfo.isSuccess = true;                         //是否成功
                            responseInfo.Content   = serializer.Serialize(fmList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetBindEquipmentRequest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetBindEquipmentResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                      //是否成功
                            responseInfo.Content   = ref_errMsg_gbe;             //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetBindEquipmentRequest请求!返回值失败,原因:" + ref_errMsg_gbe);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetBindEquipmentRequest请求!返回值失败,原因:" + ref_errMsg_gbe);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetSelectEquipmentRequest":     //获取RFID卡号为空的设备列表--是否要添加报废丢失设备过滤
                        RfidMaterialBLL           rfmBll         = new RfidMaterialBLL();
                        string                    ref_errMsg_gse = "";
                        List <FIXED_MatetialInfo> fxmList        = rfmBll.GetSelectEquipmentList(ref ref_errMsg_gse);
                        if (ref_errMsg_gse.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetSelectEquipmentResponse";  //响应消息类型
                            responseInfo.isSuccess = true;                          //是否成功
                            responseInfo.Content   = serializer.Serialize(fxmList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetSelectEquipmentResponse请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetSelectEquipmentResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                        //是否成功
                            responseInfo.Content   = ref_errMsg_gse;               //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetSelectEquipmentResponse请求!返回值失败,原因:" + ref_errMsg_gse);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetSelectEquipmentResponse请求!返回值失败,原因:" + ref_errMsg_gse);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetStorageListResquest":     //获取仓库(对象)下拉列表请求(包括车辆和分站仓库),Content为""
                        RfidStorageBLL rfisBll                     = new RfidStorageBLL();
                        string         ref_errMsg_gslr             = "";
                        List <GetStorageListResponseInfo> gslrList = rfisBll.GetStorageList(ref ref_errMsg_gslr);
                        if (ref_errMsg_gslr.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetStorageListResponse";       //响应消息类型
                            responseInfo.isSuccess = true;                           //是否成功
                            responseInfo.Content   = serializer.Serialize(gslrList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetStorageListResquest请求仓库物联列表数据!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetStorageListResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                    //是否成功
                            responseInfo.Content   = ref_errMsg_gslr;          //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetStorageListResquest请求仓库物联列表数据!返回值失败,原因:" + ref_errMsg_gslr);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetStorageListResquest请求仓库物联列表数据!返回值失败,原因:" + ref_errMsg_gslr);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetEquipmentListRequest":     //获取设备下拉列表请求
                        RfidMaterialBLL           rfmlBll         = new RfidMaterialBLL();
                        string                    ref_errMsg_gelr = "";
                        List <FIXED_MatetialInfo> fixmList        = rfmlBll.GetEquipmentList(ref ref_errMsg_gelr);
                        if (ref_errMsg_gelr.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetEquipmentListResponse";     //响应消息类型
                            responseInfo.isSuccess = true;                           //是否成功
                            responseInfo.Content   = serializer.Serialize(fixmList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetEquipmentListRequest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetEquipmentListResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                      //是否成功
                            responseInfo.Content   = ref_errMsg_gelr;            //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetEquipmentListRequest请求!返回值失败,原因:" + ref_errMsg_gelr);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetEquipmentListRequest请求!返回值失败,原因:" + ref_errMsg_gelr);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetGiveAlarmRequest":     //获取告警列表--传APP登录用户的ID
                        RfidGiveAlarmBLL rgaBll = new RfidGiveAlarmBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        P_UserInfo userInfo             = serializer.Deserialize <P_UserInfo>(tdataInfo.Content);
                        int        UserID               = userInfo.ID; //用户ID
                        string     ref_errMsg_gga       = "";
                        List <Rfid_AlarmLogInfo> gaList = rgaBll.GetGiveAlarmList(UserID, ref ref_errMsg_gga);
                        if (ref_errMsg_gga.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetGiveAlarmResponse";       //响应消息类型
                            responseInfo.isSuccess = true;                         //是否成功
                            responseInfo.Content   = serializer.Serialize(gaList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetGiveAlarmRequest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetGiveAlarmResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                  //是否成功
                            responseInfo.Content   = ref_errMsg_gga;         //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetGiveAlarmRequest请求!返回值失败,原因:" + ref_errMsg_gga);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetGiveAlarmRequest请求!返回值失败,原因:" + ref_errMsg_gga);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "AlarmQueryResquest":     //获取告警查询列表
                        RfidGiveAlarmBLL rfgBll = new RfidGiveAlarmBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        AlarmQueryInfo           aqInfo         = serializer.Deserialize <AlarmQueryInfo>(tdataInfo.Content);
                        string                   ref_errMsg_aqr = "";
                        List <Rfid_AlarmLogInfo> aqrList        = rfgBll.GetAlarmQueryList(aqInfo, ref ref_errMsg_aqr);
                        if (ref_errMsg_aqr.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "AlarmQueryResponse";          //响应消息类型
                            responseInfo.isSuccess = true;                          //是否成功
                            responseInfo.Content   = serializer.Serialize(aqrList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到AlarmQueryResquest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "AlarmQueryResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                //是否成功
                            responseInfo.Content   = ref_errMsg_aqr;       //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到AlarmQueryResquest请求!返回值失败,原因:" + ref_errMsg_aqr);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到AlarmQueryResquest请求!返回值失败,原因:" + ref_errMsg_aqr);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "RetrospectiveQueryResquest":     //获取追溯查询列表
                        RfidGiveAlarmBLL rfigBll = new RfidGiveAlarmBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        AlarmQueryInfo           aqqInfo        = serializer.Deserialize <AlarmQueryInfo>(tdataInfo.Content);
                        string                   ref_errMsg_rqr = "";
                        List <Rfid_AlarmLogInfo> rqrList        = rfigBll.GetRetrospectiveQueryList(aqqInfo, ref ref_errMsg_rqr);
                        if (ref_errMsg_rqr.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "RetrospectiveQueryResponse";  //响应消息类型
                            responseInfo.isSuccess = true;                          //是否成功
                            responseInfo.Content   = serializer.Serialize(rqrList); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到RetrospectiveQueryResquest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "RetrospectiveQueryResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                        //是否成功
                            responseInfo.Content   = ref_errMsg_rqr;               //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到RetrospectiveQueryResquest请求!返回值失败,原因:" + ref_errMsg_rqr);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到RetrospectiveQueryResquest请求!返回值失败,原因:" + ref_errMsg_rqr);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "UpdateAlarmDataResquest":     //更新告警数据
                        RfidGiveAlarmBLL rfGABll = new RfidGiveAlarmBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        Rfid_AlarmLogInfo ralInfo    = serializer.Deserialize <Rfid_AlarmLogInfo>(tdataInfo.Content);
                        string            upAdResult = "";
                        bool res = rfGABll.UpdateAlarmData(ralInfo, ref upAdResult);
                        if (res)
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "UpdateAlarmDataResponse"; //响应消息类型
                            responseInfo.isSuccess = true;                      //是否成功
                            responseInfo.Content   = "更新告警数据成功";                //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到UpdateAlarmDataResquest请求!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "UpdateAlarmDataResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                     //是否成功
                            responseInfo.Content   = upAdResult;                //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到UpdateAlarmDataResquest请求!返回值失败,原因:" + upAdResult);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到UpdateAlarmDataResquest请求!返回值失败,原因:" + upAdResult);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GetAlarmInfoResquest":     //add 20200407 获取对应编码的告警数据详情--暂时不用
                        RfidGiveAlarmBLL  rfidGaBll       = new RfidGiveAlarmBLL();
                        Rfid_AlarmLogInfo rInfo           = serializer.Deserialize <Rfid_AlarmLogInfo>(tdataInfo.Content);
                        int               BianMa          = rInfo.BianMa;//告警数据的编码
                        string            ref_errMsg_gair = "";
                        Rfid_AlarmLogInfo raInfo          = rfidGaBll.GetAlarmInfo(BianMa, ref ref_errMsg_gair);
                        if (ref_errMsg_gair.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "GetAlarmInfoResponse";       //响应消息类型
                            responseInfo.isSuccess = true;                         //是否成功
                            responseInfo.Content   = serializer.Serialize(raInfo); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到GetAlarmInfoResquest请求告警信息数据!返回值成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "GetAlarmInfoResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                  //是否成功
                            responseInfo.Content   = ref_errMsg_gair;        //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到GetAlarmInfoResquest请求告警信息数据!返回值失败,原因:" + ref_errMsg_gair);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到GetAlarmInfoResquest请求告警信息数据!返回值失败,原因:" + ref_errMsg_gair);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "BindDeviceRequest":     //绑定处理--RFID卡与设备绑定
                        RfidRelationBLL rrBLL = new RfidRelationBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo bemrInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string SheBeiID  = bemrInfo.SheBeiBianMa;                 //设备编码
                        string RfidKaHao = bemrInfo.RFIDKaHao;                    //RFID卡号
                        string bdrResult = rrBLL.BindDevice(SheBeiID, RfidKaHao); //设备与RFID卡绑定
                        if (bdrResult.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "BindDeviceResponse"; //响应消息类型
                            responseInfo.isSuccess = true;                 //是否成功
                            responseInfo.Content   = "RFID卡与设备绑定成功";       //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到BindDeviceRequest请求!绑定成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "BindDeviceResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                //是否成功
                            responseInfo.Content   = bdrResult;            //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到BindDeviceRequest请求!绑定失败,原因:" + bdrResult);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到BindDeviceRequest请求!绑定失败,原因:" + bdrResult);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "BindStorageRequest":     //绑定处理--绑卡设备与对应仓库绑定
                        RfidRelationBLL rrlBLL = new RfidRelationBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo bemrrInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string sbBianMa  = bemrrInfo.SheBeiBianMa;             //设备编码
                        string ckID      = bemrrInfo.CangKuID;                 //仓库ID
                        string bsrResult = rrlBLL.BindStorage(sbBianMa, ckID); //绑卡设备与对应仓库绑定
                        if (bsrResult.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "BindStorageResponse"; //响应消息类型
                            responseInfo.isSuccess = true;                  //是否成功
                            responseInfo.Content   = "物联绑定成功";              //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到BindStorageRequest请求!物联绑定成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "BindStorageResponse"; //响应消息类型
                            responseInfo.isSuccess = false;                 //是否成功
                            responseInfo.Content   = bsrResult;             //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到BindStorageRequest请求!物联绑定失败,原因:" + bsrResult);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到BindStorageRequest请求!物联绑定失败,原因:" + bsrResult);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "UnBindRequest":     //解绑处理--绑卡设备与对应仓库解绑
                        RfidRelationBLL rlBLL = new RfidRelationBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo beInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string ckkID        = beInfo.CangKuID;                          //仓库ID
                        string SheBeiBianMa = beInfo.SheBeiBianMa;                      //设备编码
                        string ubrResult    = rlBLL.UnBindStorage(ckkID, SheBeiBianMa); //解绑
                        if (ubrResult.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "UnBindResponse"; //响应消息类型
                            responseInfo.isSuccess = true;             //是否成功
                            responseInfo.Content   = "解除绑定成功";         //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到UnBindResquest请求!解除绑定成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "UnBindResponse"; //响应消息类型
                            responseInfo.isSuccess = false;            //是否成功
                            responseInfo.Content   = ubrResult;        //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到UnBindResquest请求!解除绑定失败,原因:" + ubrResult);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到UnBindResquest请求!解除绑定失败,原因:" + ubrResult);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "LoseRequest":     //丢失处理
                        RfidRelationBLL rflBLL = new RfidRelationBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo bdeInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string ckId    = bdeInfo.CangKuID;            //仓库ID
                        string sbID    = bdeInfo.SheBeiBianMa;        //设备编码
                        string lResult = rflBLL.DealLose(ckId, sbID); //丢失
                        if (lResult.Equals(""))
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "LoseResponse"; //响应消息类型
                            responseInfo.isSuccess = true;           //是否成功
                            responseInfo.Content   = "丢失处理成功";       //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到LoseResquest请求!丢失请求处理成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "LoseResponse"; //响应消息类型
                            responseInfo.isSuccess = false;          //是否成功
                            responseInfo.Content   = lResult;        //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到LoseResquest请求!丢失请求处理失败,原因:" + lResult);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到LoseResquest请求!丢失请求处理失败,原因:" + lResult);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "IfBoundRequest":     //验证RFID卡是否已有对应绑定设备请求 add20200408 plq
                        RfidRelationBLL rfiRBLL = new RfidRelationBLL();
                        //JSON字符串Content(消息内容)转对应实体
                        BindEquipmentRequestInfo bideInfo = serializer.Deserialize <BindEquipmentRequestInfo>(tdataInfo.Content);
                        string rfidCode             = bideInfo.RFIDKaHao;                            //RFID卡号
                        string ref_errMsg_ibr       = "";
                        IfBoundResponseInfo ibrInfo = rfiRBLL.IfBound(rfidCode, ref ref_errMsg_ibr); //RFID卡是否已有绑定设备
                        if (ref_errMsg_ibr.Equals(""))                                               //执行过程中未出现异常
                        {
                            response.StatusCode    = 200;
                            responseInfo.msgType   = "IfBoundResponse";             //响应消息类型
                            responseInfo.isSuccess = true;                          //是否成功
                            responseInfo.Content   = serializer.Serialize(ibrInfo); //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "收到IfBoundRequest请求!请求处理成功");
                        }
                        else
                        {
                            response.StatusCode    = 500;
                            responseInfo.msgType   = "IfBoundResponse"; //响应消息类型
                            responseInfo.isSuccess = false;             //是否成功
                            responseInfo.Content   = ref_errMsg_ibr;    //响应消息内容--JSON字符串
                            OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "收到IfBoundRequest请求!请求处理失败,原因:" + ref_errMsg_ibr);
                            LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "收到IfBoundRequest请求!请求处理失败,原因:" + ref_errMsg_ibr);
                        }
                        ReturnHttpDataWithSerial(responseInfo, response);
                        break;

                    case "GiveAlarmRequest":                               //http请求触发 扫库、判定、发消息操作---测试用---正常是在内部通讯接收到车辆状态改变时调用
                        DealInnerCommBLL.GetInstance().DealRfidReadData(); //扫库--调用测试--后期待注释
                        break;

                    default:
                        OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "http收到错误信息;消息类型:" + tdataInfo.MessageType);
                        ReturnHttpData("错误信息,消息类型无法识别", response);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "Http请求协议解析错误[" + ex.Message + "]");
                ReturnHttpData("Http请求协议解析错误[" + ex.Message + "]", response);
                //Log4Net.LogError("DealHttpDataBLL/ReceiveHttpData", "协议解析错误[" + ex.Message + "]");
                LogUtility.Error("DealHttpDataBLL/ReceiveHttpData", "Http请求协议解析错误![" + ex.Message + "]");
            }
            finally
            {
                body.Close();
                reader.Close();
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 在对应ListView上更新客户端连接状态
        /// 根据Code取对应实体,判断是否是合法的---代码后期待补充
        /// </summary>
        /// <param name="Code"></param>
        /// <param name="Name"></param>
        /// <param name="Ip"></param>
        /// <param name="isConnect"></param>
        /// <param name="lvTerminal">终端列表对应ListView的name</param>
        /// <param name="user">用户实体 add20200401 用户合法性判断</param>
        private void ShowTerminalConnectListView(string Code, string Name, string Ip, bool isConnect, ListView lvTerminal, P_UserInfo user)
        {
            if (isConnect) //连接
            {
                //先判断是否已经有此客户端连接
                foreach (ListViewItem lvi in lvTerminal.Items)
                {
                    if (lvi.Tag != null && lvi.Tag.Equals(Code))
                    {
                        return;
                    }
                }

                //验证Code对应P_User实体是否为null---从而能判断是否为合法终端(用户)---显示在状态列中
                if (user == null) //add20200401
                {                 //如果浦东管理库用户表中没有该用户
                    ListViewItem lvi = new ListViewItem();
                    //图标
                    lvi.ImageIndex = 0;
                    lvi.Tag        = Code;
                    lvi.Text       = "";

                    ListViewItem.ListViewSubItem lvsItem = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = DateTime.Now.ToString(); //时间
                    lvi.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Code; //客户端编码
                    lvi.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Name; //客户端名称
                    lvi.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Ip; //IP地址
                    lvi.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = "不是合法用户"; //状态
                    lvi.SubItems.Add(lvsItem);

                    lvTerminal.Items.Add(lvi);
                }
                else
                {
                    ListViewItem lvItem = new ListViewItem();
                    //图标
                    lvItem.ImageIndex = 0;
                    lvItem.Tag        = Code; //将编码绑定到Tag上
                    lvItem.Text       = "";

                    ListViewItem.ListViewSubItem lvsItem = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = DateTime.Now.ToString(); //时间
                    lvItem.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Code;  //编码
                    lvItem.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Name; //客户端名称
                    lvItem.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = Ip; //IP地址
                    lvItem.SubItems.Add(lvsItem);

                    lvsItem      = new ListViewItem.ListViewSubItem();
                    lvsItem.Text = "连接"; //状态
                    lvItem.SubItems.Add(lvsItem);
                    lvTerminal.Items.Add(lvItem);
                }
            }
            else//断开
            {
                ListViewItem rlvi = null;
                foreach (ListViewItem lvi in lvTerminal.Items)
                {
                    if (lvi.Tag.Equals(Code))
                    {
                        rlvi = lvi;
                        break;
                    }
                }

                if (rlvi != null)
                {
                    lvTerminal.Items.Remove(rlvi); //从终端连接列表中移除该条数据
                }
            }
        }