using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QMAPP.BLL;

using QMFrameWork.Data;

using QMAPP.Entity;
using QMFrameWork.Log;
using System.Data;
using QMAPP.MD.Entity;
using QMAPP.MD.DAL;
using QMAPP.FJC.Entity.BZD;

namespace QMAPP.FJC.BLL.BZD
{
    /// <summary>
    /// 模块名称:BZD条码配置
    /// 作    者:宁红钢
    /// 编写日期:2019年10月12日
    /// </summary>
    public class BZDRecorderBLL : BaseBLL
    {

        #region 获取信息
        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="">条件</param>
        /// <returns>信息</returns>
        public DataResult<BZDRecorder2> Get(BZDRecorder2 model)
        {
            DataResult<BZDRecorder2> result = new DataResult<BZDRecorder2>();
            try
            {
                result.Result = new BZDRecorderDAL().Get(model);
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Msg = Resource.SystemException;
                throw ex;
            }
            result.IsSuccess = true;
            return result;
        }
        public BZDRecorder2 GetRecord(BZDRecorder2 model)
        {
            DataResult<BZDRecorder2> result = new DataResult<BZDRecorder2>();
            try
            {
                return new BZDRecorderDAL().GetRecord(model);
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Msg = Resource.SystemException;
                throw ex;
                
            }
            
        }
        
        #endregion

        #region 获取列表(分页)
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="condition">条件</param>
        /// <param name="page">数据页</param>
        /// <returns>数据页</returns>
        public DataResult<DataPage> GetList(BZDRecorder2 condition, DataPage page)
        {
            DataResult<DataPage> result = new DataResult<DataPage>();
            try
            {
                //获取物料信息列表
                DataPage dataPage = new BZDRecorderDAL().GetList(condition, page);

                result.Result = dataPage;
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Msg = Resource.SystemException;
                throw ex;
            }
            result.IsSuccess = true;
            return result;

        }
        /// <summary>
        /// 获取全部条码格式规则
        /// </summary>
        /// <returns></returns>
        public List<BZDRecorder2> GetAllList()
        {
            return new BZDRecorderDAL().GetAllList();
        }
        #endregion

        #region 信息是否重复
        /// <summary>
        /// 判断名称是否存在
        /// </summary>
        /// <param name="">信息</param>
        /// <returns>true:已存在;fasel:不存在。</returns>
        public bool Exists(BZDRecorder info)
        {
            try
            {
                return new BZDRecorderDAL().Exists(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion

        //public List<string> getMaxSeq(string BZDCODE)
        //{
        //    List<string> list = new  List<string>();
        //    list.Add(new BZDRecorderDAL().getMaxSeq(BZDCODE));
        //    return list;
        //}

        public List<string> CreateBZDCode(List<string> paramList)
        {
            return new BZDRecorderDAL().CreateBZDCode(paramList, this.LoginUser.UserID);
        }
        #region 插入信息
        /// <summary>
        /// 插入信息(单表)
        /// </summary>
        /// <param name="">信息</param>
        /// <returns>插入行数</returns>
        public int Insert(BZDRecorder info)
        {

            try
            {
                //基本信息
                info.PID = Guid.NewGuid().ToString();
//                info.MPID = "";
                info.CREATEUSER = this.LoginUser.UserID;
                info.CREATEDATE = DateTime.Now;
                //info.UPDATEUSER = info.CREATEUSER;
                //info.UPDATEDATE = info.CREATEDATE;
                //info.FLGDEL = "0";
                BZDRecorderDAL cmdDAL = new BZDRecorderDAL();
                return new BZDRecorderDAL().Insert(info);

                 
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 更新信息
        /// <summary>
        /// 更新信息
        /// </summary>
        /// <param name="">信息</param>
        /// <returns>更新行数</returns>
        public DataResult<int> Update(BZDRecorder info)
        {
            DataResult<int> result = new DataResult<int>();
            try
            {
                //info.UPDATEUSER = this.LoginUser.UserID;
                //info.UPDATEDATE = DateTime.Now;
                //info.FLGDEL = "0";
                result.Result = new BZDRecorderDAL().Update(info);
                result.IsSuccess = true;
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 删除
        /// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="">主键串</param>
        /// <returns>删除个数</returns>
        public DataResult<int> Delete(string strs)
        {
            int count = 0;
            DataResult<int> result = new DataResult<int>();
            string[] list = strs.Split(":".ToCharArray());
            try
            {
                foreach (string str in list)
                {
                    count += this.DeleteBarcodeRules(new BZDRecorder { PID = str });
                }
                result.Result = count;
                result.IsSuccess = true;
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        /// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="">信息</param>
        /// <returns>删除个数</returns>
        public int DeleteBarcodeRules(BZDRecorder info)
        {
            try
            {
                return new BZDRecorderDAL().Delete(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 导出数据
        /// <summary>
        /// 获取导出的数据
        /// </summary>
        /// <param name="">查询条件</param>
        /// <returns>数据</returns>
        public DataTable GetExportData(BZDRecorder2 info)
        {
            try
            {
                return new BZDRecorderDAL().GetExportData(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        
    }
}