using DapperORMCore.Context.DataContext;
using DapperORMCore.Model.CoreModel;
using DapperORMCore.Repository.IRepositorys;
using Microsoft.Extensions.Configuration;
using NXWMS.IService.NXWMS.WmsTask;
using NXWMS.Model.AppModels.Condition.WmsTask;
using NXWMS.Model.AppModels.Result.WmsTask;
using NXWMS.Model.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WestDistance.DapperORM.Repository.Repositorys;
namespace NXWMS.Service.NXWMS.WmsTask
{
///
/// 任务管理服务
///
[AutoInject(typeof(IWmsTskTaskService), InjectType.Scope)]
public class WmsTskTaskService : ServiceBase, IWmsTskTaskService
{
#region 全局变量、构造注入
///
/// 系统操作仓储中转
///
private IDataRepositoryContext _dataContext;
///
/// SQL节点仓储
///
private ISQLNodeRepository _iSQLNodeRepository;
///
/// 配置
///
private IConfiguration _configuration;
///
/// 构造注入
///
///
///
///
public WmsTskTaskService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository)
{
this._dataContext = dataRepositoryContext;
this._configuration = configuration;
this._iSQLNodeRepository = iSQLNodeRepository;
}
#endregion
#region WMS大任务
///
/// 分页查询WMS大任务数据
///
/// WMS大任务查询对象
///
public OperateResultInfo> GetWmsTaskData(WmsTaskSearchMd searchMd)
{
try
{
#region SQL语句生成
StringBuilder sqlCondition = new StringBuilder();
if (!string.IsNullOrEmpty(searchMd.TaskNo))
{
sqlCondition.Append($" AND TASK_NO = '{searchMd.TaskNo}'");
}
if (!string.IsNullOrEmpty(searchMd.CmdNo))
{
sqlCondition.Append($" AND CMD_NO = '{searchMd.CmdNo}'");
}
if (!string.IsNullOrEmpty(searchMd.PalletNo))
{
sqlCondition.Append($" AND PALLET_CODE = '{searchMd.PalletNo}'");
}
if (!string.IsNullOrEmpty(searchMd.TrayLoadedMsg))
{
sqlCondition.Append($" AND TRAY_LOADED_TYPE = '{searchMd.TrayLoadedMsg}'");
}
if (!string.IsNullOrEmpty(searchMd.TaskType))
{
sqlCondition.Append($" AND TASK_TYPE = '{searchMd.TaskType}'");
}
if (!string.IsNullOrEmpty(searchMd.TaskStatus))
{
sqlCondition.Append($" AND TASK_STATUS = '{searchMd.TaskStatus}'");
}
if (!string.IsNullOrEmpty(searchMd.SLocNo))
{
sqlCondition.Append($" AND SLOC_CODE = '{searchMd.SLocNo}'");
}
if (!string.IsNullOrEmpty(searchMd.ELocNo))
{
sqlCondition.Append($" AND ELOC_CODE = '{searchMd.ELocNo}'");
}
if (!string.IsNullOrEmpty(searchMd.CLocNo))
{
sqlCondition.Append($" AND CLOC_CODE = '{searchMd.CLocNo}'");
}
if (!string.IsNullOrEmpty(searchMd.SBinCode))
{
sqlCondition.Append($" AND SBIN_CODE = '{searchMd.SBinCode}'");
}
if (!string.IsNullOrEmpty(searchMd.EBinCode))
{
sqlCondition.Append($" AND EBIN_CODE = '{searchMd.EBinCode}'");
}
if (!string.IsNullOrEmpty(searchMd.StartCreateTime))
{
sqlCondition.Append($" AND CREATE_TIME >= '{searchMd.StartCreateTime}'");
}
if (!string.IsNullOrEmpty(searchMd.EndCreateTime))
{
sqlCondition.Append($" AND CREATE_TIME <= '{searchMd.EndCreateTime}'");
}
StringBuilder sqlCountWmsTaskData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_TSK_TASK WHERE 1=1");
sqlCountWmsTaskData.Append(sqlCondition.ToString());
int pageStartIndex = (searchMd.PageNum - 1) * searchMd.EveryPageQty;
int pageEndIndex = searchMd.PageNum * searchMd.EveryPageQty;
StringBuilder sqlQueryWmsTaskData = new StringBuilder($@"
SELECT
*
FROM
VW_WMS_TSK_TASK
WHERE
1=1
{sqlCondition}
ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC
OFFSET {pageStartIndex} ROWS
FETCH NEXT {searchMd.EveryPageQty} ROWS ONLY
");
#endregion
int dataCount = Convert.ToInt32(new DataRepository