Exemplo n.º 1
0
 /// <summary>
 /// 获取DealInnerCommBLL类实例
 /// </summary>
 /// <returns></returns>
 public static DealInnerCommBLL GetInstance()
 {
     if (m_instance == null)
     {
         m_instance = new DealInnerCommBLL();
     }
     return(m_instance);
 }
Exemplo n.º 2
0
        /// <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();
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 车辆列表状态改变
 /// </summary>
 /// <param name="ambChangeInfo"></param>
 private void AmbulanceChange(BroadCast_AmbulanceChangeInfo ambChangeInfo)
 {
     DealInnerCommBLL.GetInstance().DealAmbChange(ambChangeInfo);//----接收到车辆状态改变后执行方法
 }