using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QMAPP.BLL;
using QMAPP.Entity;
using QMFrameWork.Data;
using QMAPP.FJC.Entity.FIS;
using QMAPP.FJC.DAL.FIS;
using QMAPP.FJC.BLL.Dict;
using QMFrameWork.Log;
using QMAPP.FJC.Entity;
using System.Data;
using QMAPP.FJC.Entity.FileCopy.FIS;

namespace QMAPP.FJC.BLL.FIS
{
    public class FISOrederSendDetialBLL : BaseBLL
    {
        #region 获取列表
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="condition">条件</param>
        /// <param name="page">数据页</param>
        /// <returns>数据页</returns>
        public DataResult<DataPage> GetList(FISOrederSendDetial condition, DataPage page)
        {
            DataResult<DataPage> result = new DataResult<DataPage>();
            try
            {
                //获取信息列表
                page = new FISOrederSendDetialDAL().GetList(condition, page);

                #region 转换状态显示类型
                List<FISOrederSendDetial> fisOrderList = page.Result as List<FISOrederSendDetial>;
                //处理字典信息
                DictManageBLL dictSCANSTATE = new DictManageBLL(DictKind.STATE);

                foreach (var info in fisOrderList)
                {
                    info.STATE = dictSCANSTATE.GetDictValue(info.STATE);
                }
                #endregion

                result.Result = page;
            }
            catch (Exception ex)
            {
                LogManager.LogHelper.Error(new LogInfo()
                {
                    ErrorInfo = ex,
                    Tag = ex.StackTrace,
                    Info = "FIS订单发货信息逻辑层-获取列表!"
                });
                result.IsSuccess = false;
                result.Msg = Resource.SystemException;
                throw ex;
            }
            result.IsSuccess = true;
            return result;
        }

        #endregion

        #region 导出数据
        /// <summary>
        /// 获取导出的数据
        /// </summary>
        /// <param name="user">查询条件</param>
        /// <returns>数据</returns>
        public DataResult<DataTable> GetExportData(FISOrederSendDetial model)
        {
            DataResult<DataTable> result = new DataResult<DataTable>();
            try
            {
                result.IsSuccess = true;
                result.Result = new FISOrederSendDetialDAL().GetExportData(model);

                //处理字典信息
                DictManageBLL dictSCANSTATE = new DictManageBLL(DictKind.SCANSTATE);

                foreach (DataRow dr in result.Result.Rows)
                {
                    //替换状态类别显示值
                    dr["STATE"] = dictSCANSTATE.GetDictValue(dr["STATE"].ToString());
                }
            }
            catch (Exception ex)
            {
                LogManager.LogHelper.Error(new LogInfo()
                {
                    ErrorInfo = ex,
                    Tag = ex.StackTrace,
                    Info = "FIS订单发货信息导出错误!"
                });
                result.IsSuccess = false;
                result.Msg = "FIS订单发货信息导出错误!";
            }
            return result;
        }
        #endregion
    }
}