using iWareCommon.Common.Entity;
|
using iWareCommon.Common.Service;
|
using iWareCommon.Utils;
|
using iWareExcel.EXCEL.Dao;
|
using iWareExcel.EXCEL.Entity;
|
using iWareExcel.ORM;
|
using iWareExcel.Properties;
|
using System;
|
using System.Collections.Generic;
|
using System.Data.Entity.Validation;
|
using System.Linq;
|
|
namespace iWareExcel.EXCEL.Service
|
{
|
public class WorkBookService : CommonService<WorkBookEntity, EXCELWorkBook, DbModelExcel>
|
{
|
private static object Lock = new object();
|
|
private WorkBookService() : base(WorkBookDao.GetInstance()) { }
|
|
private static WorkBookService Instance = null;
|
|
/// <summary>
|
/// 获取单例的方法
|
/// </summary>
|
/// <returns>角色服务的单例实体</returns>
|
public static WorkBookService GetInstance()
|
{
|
if (Instance == null)
|
{
|
lock (Lock)
|
{
|
if (Instance == null)
|
{
|
Instance = new WorkBookService();
|
}
|
}
|
}
|
return Instance;
|
}
|
|
|
/// <summary>
|
/// 根据条件查询
|
/// </summary>
|
/// <param name="param">查询条件</param>
|
/// <param name="msg">异常错误信息</param>
|
/// <returns>工作簿列表</returns>
|
public override List<WorkBookEntity> QueryByParam(QueryParam param, out string msg)
|
{
|
msg = "";
|
using(var dbModel = new DbModelExcel())
|
{
|
try
|
{
|
var workBooks = WorkBookDao.GetInstance().QueryByParam(param, dbModel);
|
var workBookIds = new List<int>();
|
var workBookDict = new Dictionary<int, WorkBookEntity>();
|
|
workBooks.ForEach(x => { workBookIds.Add(x.Id); workBookDict.Add(x.Id, x); });
|
|
var workSheets = dbModel.EXCELWorkSheets.Where(x => workBookIds.Contains(x.workbookid)).OrderBy(x => x.sheetindex).ToList();
|
|
var workSheetIds = new List<int>();
|
var workSheetDict = new Dictionary<int, WorkSheetEntity>();
|
|
workSheets.ForEach(x => {
|
workSheetIds.Add(x.id);
|
var workSheet = new WorkSheetEntity(x);
|
workSheetDict.Add(x.id, workSheet);
|
workBookDict[x.workbookid].WorkSheets.Add(workSheet);
|
});
|
|
var workCells = dbModel.EXCELWorkCells.Where(x => workSheetIds.Contains(x.worksheetid)).OrderBy(x => x.cellindex).ToList();
|
|
workCells.ForEach(x => workSheetDict[x.worksheetid].WorkCells.Add(new WorkCellEntity(x)));
|
|
return workBooks;
|
}
|
catch (DbEntityValidationException ex)
|
{
|
var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage);
|
msg = string.Join(", ", errs);
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "QueryByParam", msg);
|
return new List<WorkBookEntity>();
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "QueryByParam", ex.Message);
|
return new List<WorkBookEntity>();
|
}
|
}
|
|
}
|
|
|
|
|
}
|
|
|
}
|