using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using HH.WMS.Entitys; using HH.WMS.Common; using System.Data.Common; namespace HH.WMS.DAL.SysMgr { public class TN_WM_TASKDAL : DapperBaseDAL { #region GET public DataTable GetList(int pageIndex, int pageSize, out long total, string where = "", string orderBy = "") { string sql = @" (SELECT * FROM TN_WM_TASK " + where + ") a "; return ExecutePagingData(sql, pageIndex, pageSize, out total, "", ""); } #endregion /// /// 获取正在执行中或者未执行的任务 /// /// /// public List GetTaskByTray(string trayCode) { string sql = @" SELECT * FROM TN_WM_TASK where CN_S_TRAY_CODE ='" + trayCode + "' AND CN_S_STATE IN('" + Constants.TaskState_NoExecuted + "','" + Constants.TaskState_Executing + "') "; return ExecuteQuery(sql, null); } /// /// 获取正在执行中或者未执行的任务 /// /// /// public List GetTaskByEndLocation(string locationCode) { string sql = @" SELECT * FROM TN_WM_TASK where CN_S_END_BIT ='" + locationCode + "' AND CN_S_STATE IN('" + Constants.TaskState_NoExecuted + "','" + Constants.TaskState_Executing + "') "; return ExecuteQuery(sql, null); } /// /// 获取任务根据任务号 /// /// /// public List GetTaskByTaskNo(string taskNo) { string sql = " SELECT * FROM TN_WM_TASK WHERE CN_S_TASK_NO='" + taskNo + "' "; return ExecuteQuery(sql, null); } public List GetTask(string sqlWhere) { string sql = " SELECT * FROM TN_WM_TASK WHERE 1=1 " + sqlWhere; return ExecuteQuery(sql, null); } public List GetTaskByAreaCode(string areaCode) { string sql = string.Format(@" SELECT * FROM TN_WM_TASK WHERE (CN_S_START_AREA='{0}' OR CN_S_END_AREA='{0}') AND CN_S_STATE IN ('未执行','执行中','开始取货','取货完成','开始卸货','卸货完成') ", areaCode); return ExecuteQuery(sql, null); } public List GetTaskByAreaCodeJX(string areaCode) { string sql = string.Format(@" SELECT * FROM TN_WM_TASK WHERE CN_S_END_AREA='{0}' AND CN_S_STATE IN ('未执行','执行中','开始取货','取货完成','开始卸货','卸货完成') ", areaCode); return ExecuteQuery(sql, null); } public List GetTaskByAreaCodeList(string areaCode) { string sql = string.Format(@" SELECT * FROM TN_WM_TASK WHERE (CN_S_START_AREA IN '{0}' OR CN_S_END_AREA IN '{0}') AND CN_S_STATE IN ('未执行','执行中') ", areaCode); return ExecuteQuery(sql, null); } public OperateResult UpdateState(string locationCode, string afterLocationSate, string useState, string beforeLocationState, IDbTransaction trans) { string sql = string.Format(@"UPDATE tn_wm_b_location_ext SET CN_S_LOCATION_STATE='{0}',CN_S_USE_STATE='{1}' WHERE CN_S_LOCATION_CODE='{2}' AND CN_S_LOCATION_STATE='{3}' ", afterLocationSate, useState, locationCode, beforeLocationState); return ExecuteTranSql(sql, null, trans); } #region 计算该库区中的出入任务总和 /// /// 查找该库区中即将要存放该物料的货位 /// /// /// /// /// public long CalTaskCountByAreaCode(string areaCode) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine(" SELECT * FROM TN_WM_TASK "); strSql.AppendLine(" WHERE CN_S_STATE IN ('未执行','执行中') "); if (!string.IsNullOrEmpty(areaCode)) { strSql.AppendLine(" AND CN_S_END_AREA = '" + areaCode + "' "); } Log.AlgorInfo("CalTaskCountByAreaCode", "sql语句为:" + strSql.ToString()); long result = ExecuteCountSql(strSql.ToString()); return result; } #endregion } }