public Stream CreateReport(string patrolno)
        {
            string reportid = String.Empty;
            bool   success  = false;

            Console.WriteLine("特巡编号" + patrolno);
            try
            {
                //将特巡报告ID进行加密
                reportid = CreateReportId();
                Console.WriteLine(reportid);
                success = PatrolEntity.CreateReportUri(reportid, patrolno);
            }
            catch (Exception ex)
            {
                Console.WriteLine("报告书失败" + ex.Message);
                #region 日志输出
                CommonInfo.Error("创建特巡报告书错误" + ex.Message);
                #endregion
            }
            if (!success)
            {
                reportid = String.Empty;
            }

            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(reportid));

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            return(ms);
        }
        /// <summary>
        /// 展示某个特巡报告,用于生成报表数据
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Stream ShowReport(string reportid)
        {
            #region 查找数据
            ResShowReport response = new ResShowReport();
            bool          success  = false;
            try
            {
                if (reportid != null && reportid != String.Empty)
                {
                    string patrolno = PatrolEntity.getPatrolNobyReportId(reportid);
                    if (patrolno != null && patrolno != String.Empty)
                    {
                        DataTable header = PatrolEntity.getPatrolHeader4Report(patrolno);
                        DataTable detail = PatrolEntity.getPatrolDetail4Report(patrolno);
                        //DataTable facadeList = PatrolEntity.getFacadeList4Report(patrolno);
                        List <PatrolDetailInfo> detailList = ResShowReport.getPatrolDetailList(detail);
                        response.patrol_header = ResShowReport.getPatrolHeader(header);

                        response.facade_list        = ResShowReport.getFacadeImageList(detailList);
                        response.patrol_detail_list = detailList;

                        //设置成功状态
                        success = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                #region 日志输出
                CommonInfo.Error("显示特巡报告书数据错误" + ex.Message);
                #endregion
            }

            //返回消息体
            if (success)
            {
                response.SetSuccess();
            }
            else
            {
                ////默认是失败
                //response.SetFailed();
            }
            //将消息序列化为Json格式数据
            DataContractJsonSerializer obj2Json = new DataContractJsonSerializer(typeof(ResShowReport));
            MemoryStream ms = new MemoryStream();
            obj2Json.WriteObject(ms, response);

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            return(ms);

            #endregion
        }
        /// <summary>
        /// 获取特巡报告书需要的打印数据
        /// </summary>
        /// <param name="patrolno"></param>
        /// <returns></returns>
        public ResShowReport GetData(string patrolno)
        {
            ResShowReport response = null;

            if (patrolno != null && patrolno != String.Empty)
            {
                response = new ResShowReport();
                DataTable header = PatrolEntity.getPatrolHeader4Report(patrolno);
                DataTable detail = PatrolEntity.getPatrolDetail4Report(patrolno);
                //DataTable facadeList = PatrolEntity.getFacadeList4Report(patrolno);
                List <PatrolDetailInfo> detailList = ResShowReport.getPatrolDetailList(detail);
                response.patrol_header = ResShowReport.getPatrolHeader(header);

                response.facade_list        = ResShowReport.getFacadeImageList(detailList);
                response.patrol_detail_list = detailList;
            }
            return(response);
        }
        /// <summary>
        /// 上传特巡报告
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Stream UploadPatrolInformation(Stream data)
        {
            #region 查找数据
            ResUploadPatrolInformation response = new ResUploadPatrolInformation();
            bool success = false;
            try
            {
                DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(ReqUploadPatrolInformation));
                //读取器
                StreamReader sr         = new StreamReader(data);
                string       dataString = String.Empty;
                while (!sr.EndOfStream)
                {
                    dataString = sr.ReadToEnd();
                    Console.WriteLine(dataString);

                    #region 日志输出
                    CommonInfo.Log(dataString);
                    #endregion

                    //反序列化json为对象注意顺序很重要
                    ReqUploadPatrolInformation request = new ReqUploadPatrolInformation();
                    MemoryStream temp = new MemoryStream(Encoding.UTF8.GetBytes(dataString));
                    request = json.ReadObject(temp) as ReqUploadPatrolInformation;

                    //关闭临时流
                    temp.Close();

                    //调用用户更新密码接口
                    if (request != null)
                    {
                        #region **********(此处加入代码) 根据查询条件 加入业务逻辑代码*************
                        // 身份验证
                        if (request.user_id != String.Empty && request.token != String.Empty)
                        {
                            PatrolReportHeader        header     = ReportService.getHeader(request);
                            List <PatrolReportDetail> detailList = ReportService.getDetailList(request, header, request.dir_name);

                            success = PatrolEntity.InsertPatrol(header, detailList);
                            if (success)
                            {
                                //将点检图片存到正式文件夹
                                if (request.dir_name != null && request.dir_name != String.Empty)
                                {
                                    string saveDir = CommonInfo.ImageSaveUrl + "/" + request.dir_name;
                                    string tempDir = CommonInfo.ImageTempUrl + "/" + request.dir_name;
                                    if (Directory.Exists(tempDir))
                                    {
                                        if (success)
                                        {
                                            //将临时文件夹拷贝到正式文件夹
                                            Directory.Move(tempDir, saveDir);
                                            success = true;
                                            //事务成功完成
                                            response.patrol_id = request.patrol_id;
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                    }
                }
                sr.Close();
                Console.WriteLine(data);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                #region 日志输出
                CommonInfo.Error("上传特巡报告错误" + ex.Message);
                #endregion
            }

            //返回消息体
            if (success)
            {
                response.SetSuccess();
            }
            else
            {
                ////默认是失败
                //response.SetFailed();
            }
            //将消息序列化为Json格式数据
            DataContractJsonSerializer obj2Json = new DataContractJsonSerializer(typeof(ResUploadPatrolInformation));
            MemoryStream ms = new MemoryStream();
            obj2Json.WriteObject(ms, response);

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            return(ms);

            #endregion
        }
        /// <summary>
        /// 删除特巡报告头表以及所有明细
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Stream DeletePatrol(Stream data)
        {
            #region 查找数据
            ResDeletePatrol response = new ResDeletePatrol();
            bool            success  = false;
            try
            {
                DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(ReqDeletePatrol));
                //读取器
                StreamReader sr         = new StreamReader(data);
                string       dataString = String.Empty;
                while (!sr.EndOfStream)
                {
                    dataString = sr.ReadToEnd();
                    Console.WriteLine(dataString);

                    #region 日志输出
                    CommonInfo.Log(dataString);
                    #endregion

                    //反序列化json为对象注意顺序很重要
                    ReqDeletePatrol request = new ReqDeletePatrol();
                    MemoryStream    temp    = new MemoryStream(Encoding.UTF8.GetBytes(dataString));
                    request = json.ReadObject(temp) as ReqDeletePatrol;

                    //关闭临时流
                    temp.Close();

                    //调用用户更新密码接口
                    if (request != null && request.patrol_no.Length > 0 & request.account.Length > 0)
                    {
                        //**********(此处加入代码) 根据查询条件 加入业务逻辑代码*************
                        Console.WriteLine("{0}正在删除特巡:{1}", request.account, request.patrol_no);
                        #region 日志输出
                        CommonInfo.Log(request.account + "正在删除特巡:" + request.patrol_no);
                        #endregion
                        success = PatrolEntity.DeleteReport(request.patrol_no);
                    }
                }
                sr.Close();
                Console.WriteLine(data);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                #region 日志输出
                CommonInfo.Error("删除特巡数据错误" + ex.Message);
                #endregion
            }

            //返回消息体
            if (success)
            {
                response.SetSuccess();
            }
            else
            {
                ////默认是失败
                //response.SetFailed();
            }
            //将消息序列化为Json格式数据
            DataContractJsonSerializer obj2Json = new DataContractJsonSerializer(typeof(ResDeletePatrol));
            MemoryStream ms = new MemoryStream();
            obj2Json.WriteObject(ms, response);

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            return(ms);

            #endregion
        }
        /// <summary>
        /// 取得指定编号特巡报告
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Stream GetPatrol(Stream data)
        {
            #region 查找数据
            ResGetPatrol response = new ResGetPatrol();
            bool         success  = false;
            try
            {
                DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(ReqGetPatrol));
                //读取器
                StreamReader sr         = new StreamReader(data);
                string       dataString = String.Empty;
                while (!sr.EndOfStream)
                {
                    dataString = sr.ReadToEnd();
                    Console.WriteLine(dataString);

                    #region 日志输出
                    CommonInfo.Log(dataString);
                    #endregion

                    //反序列化json为对象注意顺序很重要
                    ReqGetPatrol request = new ReqGetPatrol();
                    MemoryStream temp    = new MemoryStream(Encoding.UTF8.GetBytes(dataString));
                    request = json.ReadObject(temp) as ReqGetPatrol;

                    //关闭临时流
                    temp.Close();

                    //调用用户更新密码接口
                    if (request != null)
                    {
                        //**********(此处加入代码) 根据查询条件 加入业务逻辑代码*************

                        if (request.account != null && request.account != String.Empty && request.token != null && request.token != String.Empty)
                        {
                            if (request.patrol_no != null && request.patrol_no != String.Empty)
                            {
                                DataTable header = PatrolEntity.getPatrolHeader(request.patrol_no);
                                DataTable detail = PatrolEntity.getPatrolDetail(request.patrol_no);
                                response.patrol_header      = ResGetPatrol.getPatrolHeader(header);
                                response.patrol_detail_list = ResGetPatrol.getPatrolDetailList(detail);

                                //设置成功状态
                                success = true;
                            }
                        }
                    }
                }
                sr.Close();
                Console.WriteLine(data);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                #region 日志输出
                CommonInfo.Error("获取特巡数据" + ex.Message);
                #endregion
            }

            //返回消息体
            if (success)
            {
                response.SetSuccess();
            }
            else
            {
                ////默认是失败
                //response.SetFailed();
            }
            //将消息序列化为Json格式数据
            DataContractJsonSerializer obj2Json = new DataContractJsonSerializer(typeof(ResGetPatrol));
            MemoryStream ms = new MemoryStream();
            obj2Json.WriteObject(ms, response);

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            return(ms);

            #endregion
        }
        /// <summary>
        /// 取得特巡报告列表
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Stream GetPatrolList(Stream data)
        {
            int starttime = Environment.TickCount;

            Console.WriteLine("特巡开始时间:" + starttime);
            #region 查找数据
            ResGetPatrolList response = new ResGetPatrolList();
            bool             success  = true;
            try
            {
                DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(ReqGetPatrolList));
                //读取器
                StreamReader sr         = new StreamReader(data);
                string       dataString = String.Empty;
                while (!sr.EndOfStream)
                {
                    dataString = sr.ReadToEnd();
                    Console.WriteLine(dataString);

                    #region 日志输出
                    CommonInfo.Log(dataString);
                    #endregion

                    //反序列化json为对象注意顺序很重要
                    ReqGetPatrolList request = new ReqGetPatrolList();
                    MemoryStream     temp    = new MemoryStream(Encoding.UTF8.GetBytes(dataString));
                    request = json.ReadObject(temp) as ReqGetPatrolList;

                    //关闭临时流
                    temp.Close();

                    //调用用户更新密码接口
                    if (request != null)
                    {
                        #region **********(此处加入代码) 根据查询条件 加入业务逻辑代码*************
                        // 身份验证
                        if (request.account != null && request.account != String.Empty && request.token != null && request.token != String.Empty)
                        {
                            // sql查询字符串组织
                            string queryString = String.Empty;
                            string rangeString = String.Empty;
                            // 按条件查询
                            if (request.search_info != null)
                            {
                                #region 属性查询对应
                                if (request.search_info.AgencyShop != null && request.search_info.AgencyShop != String.Empty)
                                {
                                    queryString += " and sta.CompanyCD = '" + request.search_info.AgencyShop + "' ";
                                }
                                if (request.search_info.Customer != null && request.search_info.Customer != String.Empty)
                                {
                                    queryString += " and t.ContactorName1 like '%" + request.search_info.Customer + "%' ";
                                }
                                if (request.search_info.MachineStatus != null && request.search_info.MachineStatus != String.Empty)
                                {
                                    queryString += " and t.MachineStatus = '" + request.search_info.MachineStatus + "' ";
                                }
                                if (request.search_info.Filiale != null && request.search_info.Filiale != String.Empty)
                                {
                                    queryString += " and sta.SubCompanyCD = '" + request.search_info.Filiale + "' ";
                                }
                                if (request.search_info.HasErrorImage != null && request.search_info.HasErrorImage != String.Empty)
                                {
                                    string haserror = request.search_info.HasErrorImage.Trim().ToUpper();
                                    if (haserror == "0")
                                    {
                                        //无不正常图片
                                        queryString += " and dc.ErrImageCount is null ";
                                    }
                                    else
                                    {
                                        //所有不正常图片
                                        queryString += " and dc.ErrImageCount > 0 ";
                                    }
                                }
                                if (request.search_info.IsEmergency != null && request.search_info.IsEmergency != String.Empty)
                                {
                                    //前台过来的是true和false 需要转换
                                    string istrue = (request.search_info.IsEmergency.Trim().ToLower() == "true") ? "1" : "0";
                                    queryString += " and t.IsEmergency = '" + istrue + "' ";
                                }
                                if (request.search_info.MachineNO != null && request.search_info.MachineNO != String.Empty)
                                {
                                    queryString += " and t.MachineNO like '%" + request.search_info.MachineNO + "%' ";
                                }
                                if (request.search_info.MachineType != null && request.search_info.MachineType != String.Empty)
                                {
                                    queryString += " and t.MachineType = '" + request.search_info.MachineType + "' ";
                                }
                                if (request.search_info.LocationCode != null && request.search_info.LocationCode != String.Empty)
                                {
                                    queryString += " and d.LocationCode = '" + request.search_info.LocationCode + "' ";
                                }
                                if (request.search_info.SpotCode != null && request.search_info.SpotCode != String.Empty)
                                {
                                    queryString += " and d.SpotCode = '" + request.search_info.SpotCode + "' ";
                                }
                                if (request.search_info.Remarks != null && request.search_info.Remarks != String.Empty)
                                {
                                    queryString += " and d.Remarks like '%" + request.search_info.Remarks + "%' ";
                                }
                                if (request.search_info.ReportDateStart != null && request.search_info.ReportDateStart != String.Empty)
                                {
                                    queryString += " and t.ReportDate >= '" + request.search_info.ReportDateStart + "' ";
                                }
                                if (request.search_info.ReportDateClosed != null && request.search_info.ReportDateClosed != String.Empty)
                                {
                                    queryString += " and t.ReportDate <= '" + request.search_info.ReportDateClosed + "' ";
                                }
                                if (request.search_info.Reporter != null && request.search_info.Reporter != String.Empty)
                                {
                                    queryString += " and t.Reporter = '" + request.search_info.Reporter + "' ";
                                }
                                if (request.search_info.ReportStatus != null && request.search_info.ReportStatus != String.Empty)
                                {
                                    queryString += " and t.ReportStatus = '" + request.search_info.ReportStatus + "' ";
                                }

                                //分页控制对象范围
                                int pageIndex = 1;
                                int pageSize  = 10;
                                if (request.search_info.Paginator != null)
                                {
                                    pageIndex = request.search_info.Paginator.PageIndex;
                                    pageIndex = pageIndex > 0 ? pageIndex : 1;
                                    pageSize  = request.search_info.Paginator.PageSize;
                                    pageSize  = pageSize > 0 ? pageSize : 10;

                                    int rangeStart = (pageIndex - 1) * pageSize + 1;
                                    int rangeEnd   = pageIndex * pageSize;

                                    rangeString += " and orderno between " + rangeStart + " and " + rangeEnd + " ";
                                }
                                else
                                {
                                    rangeString += " and orderno between " + pageIndex + " and " + pageSize + " ";
                                }

                                //获取数据调用数据库接口
                                DataTable dt = PatrolEntity.getPatrolList(queryString, rangeString);
                                //转换数据
                                response.patrol_list = ResGetPatrolList.Transfer(dt);
                                response.count       = PatrolEntity.getPatrolCount(queryString);

                                success = true;
                                #endregion
                            }
                        }
                        #endregion
                    }
                }
                sr.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                #region 日志输出
                CommonInfo.Error("获取特巡列表数据错误" + ex.Message);
                #endregion
            }

            //返回消息体
            if (success)
            {
                response.SetSuccess();

                #region 日志输出
                CommonInfo.Log("获取特巡列表成功 总数量" + response.count.ToString());
                #endregion
            }
            else
            {
                ////默认是失败
                //response.SetFailed();
            }
            //将消息序列化为Json格式数据
            DataContractJsonSerializer obj2Json = new DataContractJsonSerializer(typeof(ResGetPatrolList));
            MemoryStream ms = new MemoryStream();
            obj2Json.WriteObject(ms, response);

            //注意一定要设置流的位置到开始位置,否则没有消息输出
            ms.Position = 0;
            Console.WriteLine("结束时间:" + (Environment.TickCount - starttime));
            return(ms);

            #endregion
        }