using HanHe.Utility.Data;
|
using HH.MData;
|
using HH.WMS.Common;
|
using HH.WMS.Entitys.Autobom;
|
using HH.WMS.Entitys.Common;
|
using HH.WMS.Entitys.External;
|
using MongoDB.Driver;
|
using MongoDB.Driver.Builders;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.Common;
|
using System.Data.OracleClient;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.DAL.External
|
{
|
public class TN_WM_TRANSPORT_TASKDAL : BaseDAL
|
{
|
#region 获取流转任务
|
/// <summary>
|
/// 获取流转任务
|
/// </summary>
|
/// <param name="ObjType">对象</param>
|
/// <param name="ObjNo">对象编码</param>
|
/// <param name="TaskNo">任务编码</param>
|
/// <param name="TaskState">任务状态</param>
|
/// <param name="ps"></param>
|
/// <param name="pg"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(xdl)] CREATED 2018/04/28</history>
|
public List<TN_WM_TRANSPORT_TASKEntity> GetSearchList(string strWhere, string strOrder, int pageSize, int pageIndex, out int totalPages, out int totalRows)
|
{
|
string sql = @"(SELECT CN_S_TASK_NO,CN_S_CIR_OBJ,CN_S_CIR_OBJ_CODE,CN_S_START_BIT,CN_S_END_BIT,CN_S_PRO_CODE,CN_S_STATE,CN_T_START,
|
CN_T_END,CN_S_BF_TASK_NO,CN_S_AF_TASK_NO,CN_S_STOCK_CODE,
|
CN_S_START_AREA,CN_S_END_AREA,CN_N_PRIORITY,CN_S_CREATOR,
|
CN_S_CREATOR_BY,CN_T_CREATE,CN_S_MODIFY,CN_S_MODIFY_BY,
|
CN_T_MODIFY,CN_S_REMARK,CN_S_TASK_TYPE FROM TN_WM_TRANSPORT_TASK) t";
|
DbCommand cmd = DataAccess.GetStoredProcCommand("prc_query");
|
this.DataAccess.AddInParameter(cmd, "TableName", ComDbType.STRING, sql);
|
this.DataAccess.AddInParameter(cmd, "WhereStr", ComDbType.STRING, strWhere);
|
this.DataAccess.AddInParameter(cmd, "OrderByStr", ComDbType.STRING, strOrder);
|
this.DataAccess.AddInParameter(cmd, "PageSize", ComDbType.INT, pageSize);
|
this.DataAccess.AddInParameter(cmd, "PageIndex", ComDbType.INT, pageIndex);
|
this.DataAccess.AddOutParameter(cmd, "TotalPage", ComDbType.INT, 4);
|
this.DataAccess.AddOutParameter(cmd, "TotalRecord", ComDbType.INT, 4);
|
|
//如果是oracle 增加特性
|
if (!string.IsNullOrEmpty(Now_dbType) && Now_dbType.Equals("ORACLE"))
|
{
|
//处理游标类型 因DbType无游标类型,游标类型单独处理
|
ComDbType.AddOrcOutParameter(cmd, "v_cur", OracleType.Cursor);
|
}
|
try
|
{
|
//获得列表
|
List<TN_WM_TRANSPORT_TASKEntity> list = DataAccessExtensive.ExecuteListEntity<TN_WM_TRANSPORT_TASKEntity>(this.DataAccess, cmd, SetEntity);
|
|
totalPages = Convert.ToInt32(this.DataAccess.GetParameterValue(cmd, "TotalPage"));
|
totalRows = Convert.ToInt32(this.DataAccess.GetParameterValue(cmd, "TotalRecord"));
|
return list;
|
}
|
catch (Exception)
|
{
|
throw;
|
}
|
}
|
|
/// <summary>
|
/// 设置实体的各列
|
/// <summary>
|
private void SetEntity(TN_WM_TRANSPORT_TASKEntity entity, IDataReader reader)
|
{
|
SetEntityUti(entity, "CN_S_TASK_NO", "CN_S_TASK_NO", reader);
|
SetEntityUti(entity, "CN_S_CIR_OBJ", "CN_S_CIR_OBJ", reader);
|
SetEntityUti(entity, "CN_S_CIR_OBJ_CODE", "CN_S_CIR_OBJ_CODE", reader);
|
SetEntityUti(entity, "CN_S_START_BIT", "CN_S_START_BIT", reader);
|
SetEntityUti(entity, "CN_S_END_BIT", "CN_S_END_BIT", reader);
|
SetEntityUti(entity, "CN_S_PRO_CODE", "CN_S_PRO_CODE", reader);
|
SetEntityUti(entity, "CN_S_STATE", "CN_S_STATE", reader);
|
SetEntityUti(entity, "CN_T_START", "CN_T_START", reader);
|
SetEntityUti(entity, "CN_T_END", "CN_T_END", reader);
|
SetEntityUti(entity, "CN_S_BF_TASK_NO", "CN_S_BF_TASK_NO", reader);
|
SetEntityUti(entity, "CN_S_AF_TASK_NO", "CN_S_AF_TASK_NO", reader);
|
SetEntityUti(entity, "CN_S_STOCK_CODE", "CN_S_STOCK_CODE", reader);
|
SetEntityUti(entity, "CN_S_START_AREA", "CN_S_START_AREA", reader);
|
SetEntityUti(entity, "CN_S_END_AREA", "CN_S_END_AREA", reader);
|
SetEntityUti(entity, "CN_S_TASK_TYPE", "CN_S_TASK_TYPE", reader);
|
SetEntityUti(entity, "CN_N_PRIORITY", "CN_N_PRIORITY", reader);
|
SetEntityUti(entity, "CN_S_CREATOR", "CN_S_CREATOR", reader);
|
SetEntityUti(entity, "CN_S_CREATOR_BY", "CN_S_CREATOR_BY", reader);
|
SetEntityUti(entity, "CN_T_CREATE", "CN_T_CREATE", reader);
|
SetEntityUti(entity, "CN_S_MODIFY", "CN_S_MODIFY", reader);
|
SetEntityUti(entity, "CN_S_MODIFY_BY", "CN_S_MODIFY_BY", reader);
|
SetEntityUti(entity, "CN_T_MODIFY", "CN_T_MODIFY", reader);
|
SetEntityUti(entity, "CN_S_REMARK", "CN_S_REMARK", reader);
|
}
|
#endregion
|
|
/// <summary>
|
/// 获取流转任务对象
|
/// </summary>
|
/// <param name="taskNo"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(xdl)] CREATED 2018/04/28</history>
|
public TN_WM_TRANSPORT_TASKEntity GetTransportTask(string taskNo)
|
{
|
string strSql = "SELECT * FROM TN_WM_TRANSPORT_TASK WHERE 1=1 AND CN_S_TASK_NO='" + taskNo + "'";
|
TN_WM_TRANSPORT_TASKEntity transportTask;
|
try
|
{
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql);
|
transportTask = DataAccessExtensive.ExecuteSingleEntity<TN_WM_TRANSPORT_TASKEntity>(this.DataAccess, cmd, SetEntity);
|
}
|
catch (Exception ex)
|
{
|
Log.Info("HH.BWMS.DAL.TaskMgr.TN_WM_TRANSPORT_TASKDAL.GetTransportTask", JsonConvert.SerializeObject(ex));
|
return null;
|
}
|
return transportTask;
|
}
|
|
/// <summary>
|
/// 获取流转任务对象列表
|
/// </summary>
|
/// <param name="strWhere"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(xdl)] CREATED 2018/04/28</history>
|
public List<TN_WM_TRANSPORT_TASKEntity> GetTransportTaskList(string strWhere)
|
{
|
string strSql = "SELECT * FROM TN_WM_TRANSPORT_TASK WHERE 1=1 " + strWhere + "";
|
List<TN_WM_TRANSPORT_TASKEntity> lstTransportTask;
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql);
|
lstTransportTask = DataAccessExtensive.ExecuteListEntity<TN_WM_TRANSPORT_TASKEntity>(this.DataAccess, cmd, SetEntity);
|
return lstTransportTask;
|
}
|
|
|
|
/// <summary>
|
/// 根据任务号获取任务实体
|
/// </summary>
|
/// <param name="CN_S_TASK_NO"></param>
|
/// <returns></returns>
|
public DataTable GetTaskEntity(string CN_S_TASK_NO)
|
{
|
string strSql = "SELECT * FROM TN_WM_TRANSPORT_TASK WHERE 1=1 AND CN_S_TASK_NO='" + CN_S_TASK_NO + "'";
|
DataTable dt = new DataTable();
|
try
|
{
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql);
|
dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
|
}
|
catch (Exception ex)
|
{
|
return dt;
|
throw ex;
|
}
|
return dt;
|
}
|
|
#region 新增
|
/// <summary>
|
/// 增加一条数据
|
/// </summary>
|
/// <history>[HanHe(DBS)] CREATED 2018/4/12</history>
|
public SqlExecuteResult Add(List<TN_WM_TRANSPORT_TASKEntity> entitys, DbTransaction trans)
|
{
|
string sql = @"INSERT INTO TN_WM_TRANSPORT_TASK
|
(CN_S_TASK_NO
|
,CN_S_CIR_OBJ
|
,CN_S_CIR_OBJ_CODE
|
,CN_S_START_BIT
|
,CN_S_END_BIT
|
,CN_S_PRO_CODE
|
,CN_S_STATE
|
,CN_S_TASK_TYPE
|
,CN_S_BF_TASK_NO
|
,CN_S_AF_TASK_NO
|
,CN_S_STOCK_CODE
|
,CN_S_START_AREA
|
,CN_S_END_AREA
|
,CN_S_START_AREA_TYPE
|
,CN_S_END_AREA_TYPE
|
,CN_C_START_IS_CONTROL_QTY
|
,CN_C_END_IS_CONTROL_QTY
|
,CN_S_START_CONTROL_INV
|
,CN_S_END_CONTROL_INV
|
,CN_N_PRIORITY
|
,CN_S_CREATOR
|
,CN_S_CREATOR_BY
|
,CN_T_CREATE
|
,CN_T_MODIFY,CN_S_REMARK,CN_C_IS_AUTO,CN_S_PROJECT_CODE)
|
VALUES
|
(:CN_S_TASK_NO,:CN_S_CIR_OBJ,:CN_S_CIR_OBJ_CODE,:CN_S_START_BIT,:CN_S_END_BIT
|
,:CN_S_PRO_CODE,:CN_S_STATE,:CN_S_TASK_TYPE,
|
:CN_S_BF_TASK_NO,:CN_S_AF_TASK_NO,:CN_S_STOCK_CODE,:CN_S_START_AREA,:CN_S_END_AREA,:CN_S_START_AREA_TYPE,:CN_S_END_AREA_TYPE,:CN_C_START_IS_CONTROL_QTY,:CN_C_END_IS_CONTROL_QTY,:CN_S_START_CONTROL_INV,:CN_S_END_CONTROL_INV,:CN_N_PRIORITY,:CN_S_CREATOR
|
,:CN_S_CREATOR_BY,:CN_T_CREATE,:CN_T_MODIFY,:CN_S_REMARK,:CN_C_IS_AUTO,:CN_S_PROJECT_CODE)";
|
|
List<DbCommand> cmds = new List<DbCommand>();
|
foreach (TN_WM_TRANSPORT_TASKEntity entity in entitys)
|
{
|
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
|
|
DataAccess.AddInParameter(cmd, "@CN_S_TASK_NO", DbType.String, entity.CN_S_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_CIR_OBJ", DbType.String, entity.CN_S_CIR_OBJ);
|
DataAccess.AddInParameter(cmd, "@CN_S_CIR_OBJ_CODE", DbType.String, entity.CN_S_CIR_OBJ_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_BIT", DbType.String, entity.CN_S_START_BIT);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_BIT", DbType.String, entity.CN_S_END_BIT);
|
DataAccess.AddInParameter(cmd, "@CN_S_PRO_CODE", DbType.String, entity.CN_S_PRO_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_STATE", DbType.String, entity.CN_S_STATE);
|
DataAccess.AddInParameter(cmd, "@CN_S_TASK_TYPE", DbType.String, entity.CN_S_TASK_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_S_BF_TASK_NO", DbType.String, entity.CN_S_BF_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_AF_TASK_NO", DbType.String, entity.CN_S_AF_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_STOCK_CODE", DbType.String, entity.CN_S_STOCK_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_AREA", DbType.String, entity.CN_S_START_AREA);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_AREA", DbType.String, entity.CN_S_END_AREA);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_AREA_TYPE", DbType.String, entity.CN_S_START_AREA_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_AREA_TYPE", DbType.String, entity.CN_S_END_AREA_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_C_START_IS_CONTROL_QTY", DbType.String, entity.CN_C_START_IS_CONTROL_QTY);
|
DataAccess.AddInParameter(cmd, "@CN_C_END_IS_CONTROL_QTY", DbType.String, entity.CN_C_END_IS_CONTROL_QTY);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_CONTROL_INV", DbType.String, entity.CN_S_START_CONTROL_INV);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_CONTROL_INV", DbType.String, entity.CN_S_END_CONTROL_INV);
|
DataAccess.AddInParameter(cmd, "@CN_N_PRIORITY", DbType.Int16, entity.CN_N_PRIORITY);
|
DataAccess.AddInParameter(cmd, "@CN_S_CREATOR", DbType.String, entity.CN_S_CREATOR);
|
DataAccess.AddInParameter(cmd, "@CN_S_CREATOR_BY", DbType.String, entity.CN_S_CREATOR_BY);
|
DataAccess.AddInParameter(cmd, "@CN_T_CREATE", DbType.DateTime, entity.CN_T_CREATE);
|
DataAccess.AddInParameter(cmd, "@CN_T_MODIFY", DbType.DateTime, entity.CN_T_MODIFY);
|
DataAccess.AddInParameter(cmd, "@CN_S_REMARK", DbType.String, entity.CN_S_REMARK);
|
DataAccess.AddInParameter(cmd, "@CN_C_IS_AUTO", DbType.String, entity.CN_C_IS_AUTO);
|
DataAccess.AddInParameter(cmd, "@CN_S_PROJECT_CODE", DbType.String, entity.CN_S_PROJECT_CODE);
|
cmds.Add(cmd);
|
}
|
return ExecuteCommands(cmds, trans);
|
}
|
|
public SqlExecuteResult Add(TN_WM_TRANSPORT_TASKEntity entity, DbTransaction trans)
|
{
|
string sql = @"INSERT INTO TN_WM_TRANSPORT_TASK
|
(CN_S_TASK_NO
|
,CN_S_CIR_OBJ
|
,CN_S_CIR_OBJ_CODE
|
,CN_S_START_BIT
|
,CN_S_END_BIT
|
,CN_S_PRO_CODE
|
,CN_S_STATE
|
,CN_S_TASK_TYPE
|
,CN_S_BF_TASK_NO
|
,CN_S_AF_TASK_NO
|
,CN_S_STOCK_CODE
|
,CN_S_START_AREA
|
,CN_S_END_AREA
|
,CN_S_START_AREA_TYPE
|
,CN_S_END_AREA_TYPE
|
,CN_C_START_IS_CONTROL_QTY
|
,CN_C_END_IS_CONTROL_QTY
|
,CN_S_START_CONTROL_INV
|
,CN_S_END_CONTROL_INV
|
,CN_N_PRIORITY
|
,CN_S_CREATOR
|
,CN_S_CREATOR_BY
|
,CN_T_CREATE
|
,CN_T_MODIFY,CN_S_REMARK,CN_C_IS_AUTO,CN_S_PROJECT_CODE)
|
VALUES
|
(:CN_S_TASK_NO,:CN_S_CIR_OBJ,:CN_S_CIR_OBJ_CODE,:CN_S_START_BIT,:CN_S_END_BIT
|
,:CN_S_PRO_CODE,:CN_S_STATE,:CN_S_TASK_TYPE,
|
:CN_S_BF_TASK_NO,:CN_S_AF_TASK_NO,:CN_S_STOCK_CODE,:CN_S_START_AREA,:CN_S_END_AREA,:CN_S_START_AREA_TYPE,:CN_S_END_AREA_TYPE,:CN_C_START_IS_CONTROL_QTY,:CN_C_END_IS_CONTROL_QTY,:CN_S_START_CONTROL_INV,:CN_S_END_CONTROL_INV,:CN_N_PRIORITY,:CN_S_CREATOR
|
,:CN_S_CREATOR_BY,:CN_T_CREATE,:CN_T_MODIFY,:CN_S_REMARK,:CN_C_IS_AUTO,:CN_S_PROJECT_CODE)";
|
|
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
|
|
DataAccess.AddInParameter(cmd, "@CN_S_TASK_NO", DbType.String, entity.CN_S_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_CIR_OBJ", DbType.String, entity.CN_S_CIR_OBJ);
|
DataAccess.AddInParameter(cmd, "@CN_S_CIR_OBJ_CODE", DbType.String, entity.CN_S_CIR_OBJ_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_BIT", DbType.String, entity.CN_S_START_BIT);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_BIT", DbType.String, entity.CN_S_END_BIT);
|
DataAccess.AddInParameter(cmd, "@CN_S_PRO_CODE", DbType.String, entity.CN_S_PRO_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_STATE", DbType.String, entity.CN_S_STATE);
|
DataAccess.AddInParameter(cmd, "@CN_S_TASK_TYPE", DbType.String, entity.CN_S_TASK_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_S_BF_TASK_NO", DbType.String, entity.CN_S_BF_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_AF_TASK_NO", DbType.String, entity.CN_S_AF_TASK_NO);
|
DataAccess.AddInParameter(cmd, "@CN_S_STOCK_CODE", DbType.String, entity.CN_S_STOCK_CODE);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_AREA", DbType.String, entity.CN_S_START_AREA);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_AREA", DbType.String, entity.CN_S_END_AREA);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_AREA_TYPE", DbType.String, entity.CN_S_START_AREA_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_AREA_TYPE", DbType.String, entity.CN_S_END_AREA_TYPE);
|
DataAccess.AddInParameter(cmd, "@CN_C_START_IS_CONTROL_QTY", DbType.String, entity.CN_C_START_IS_CONTROL_QTY);
|
DataAccess.AddInParameter(cmd, "@CN_C_END_IS_CONTROL_QTY", DbType.String, entity.CN_C_END_IS_CONTROL_QTY);
|
DataAccess.AddInParameter(cmd, "@CN_S_START_CONTROL_INV", DbType.String, entity.CN_S_START_CONTROL_INV);
|
DataAccess.AddInParameter(cmd, "@CN_S_END_CONTROL_INV", DbType.String, entity.CN_S_END_CONTROL_INV);
|
DataAccess.AddInParameter(cmd, "@CN_N_PRIORITY", DbType.Int16, entity.CN_N_PRIORITY);
|
DataAccess.AddInParameter(cmd, "@CN_S_CREATOR", DbType.String, entity.CN_S_CREATOR);
|
DataAccess.AddInParameter(cmd, "@CN_S_CREATOR_BY", DbType.String, entity.CN_S_CREATOR_BY);
|
DataAccess.AddInParameter(cmd, "@CN_T_CREATE", DbType.DateTime, entity.CN_T_CREATE);
|
DataAccess.AddInParameter(cmd, "@CN_T_MODIFY", DbType.DateTime, entity.CN_T_MODIFY);
|
DataAccess.AddInParameter(cmd, "@CN_S_REMARK", DbType.String, entity.CN_S_REMARK);
|
DataAccess.AddInParameter(cmd, "@CN_C_IS_AUTO", DbType.String, entity.CN_C_IS_AUTO);
|
DataAccess.AddInParameter(cmd, "@CN_S_PROJECT_CODE", DbType.String, entity.CN_S_PROJECT_CODE);
|
return ExecuteCommand(cmd, trans);
|
}
|
#endregion
|
|
#region 更改任务状态为执行中
|
/// <summary>
|
/// 更改任务执行状态
|
/// </summary>
|
/// <param name="taskNo"></param>
|
/// <param name="taskState"></param>
|
/// <param name="trans"></param>
|
/// <returns></returns>
|
public SqlExecuteResult UpdateState(string taskNo, string taskState, DbTransaction trans)
|
{
|
string strSql = "UPDATE TN_WM_TRANSPORT_TASK SET CN_S_STATE=:CN_S_STATE where CN_S_TASK_NO=:CN_S_TASK_NO";
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
DataAccess.AddInParameter(cmd, "CN_S_STATE", DbType.String, taskState);
|
DataAccess.AddInParameter(cmd, "CN_T_END", DbType.Date, DateTime.Now);
|
DataAccess.AddInParameter(cmd, "CN_S_TASK_NO", DbType.String, taskNo);
|
return ExecuteCommand(cmd, trans);
|
}
|
|
/// <summary>
|
/// 更新任务执行开始时间
|
/// </summary>
|
/// <param name="taskNo"></param>
|
/// <param name="trans"></param>
|
/// <returns></returns>
|
public SqlExecuteResult UpdateStartTime(string taskNo, DbTransaction trans)
|
{
|
string strSql = "UPDATE TN_WM_TRANSPORT_TASK SET CN_T_START=:CN_T_START where CN_S_TASK_NO=:CN_S_TASK_NO";
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
DataAccess.AddInParameter(cmd, "CN_T_START", DbType.Date, DateTime.Now);
|
DataAccess.AddInParameter(cmd, "CN_S_TASK_NO", DbType.String, taskNo);
|
return ExecuteCommand(cmd, trans);
|
}
|
#endregion
|
|
#region 根据任务编号获取任务实体
|
/// <summary>
|
/// 根据任务编号获取任务实体
|
/// </summary>
|
/// <param name="taskNo">任务编号</param>
|
/// <param name="trans"></param>
|
/// <returns></returns>
|
public TN_WM_TRANSPORT_TASKEntity GetTaskByNo(string taskNo)
|
{
|
TN_WM_TRANSPORT_TASKEntity taskEntity = new TN_WM_TRANSPORT_TASKEntity();
|
|
string sql = @" select * from TN_WM_TRANSPORT_TASK WHERE CN_S_TASK_NO ='" + taskNo + "'";
|
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
|
try
|
{
|
//获得 实体
|
taskEntity = DataAccessExtensive.ExecuteSingleEntity<TN_WM_TRANSPORT_TASKEntity>(this.DataAccess, cmd, SetEntity);
|
return taskEntity;
|
}
|
catch (Exception)
|
{
|
throw;
|
}
|
}
|
#endregion
|
|
#region 根据流程编号获取实体
|
/// <summary>
|
/// 根据流程编号获取实体
|
/// </summary>
|
/// <param name="proCode"></param>
|
/// <returns></returns>
|
public List<TN_AB_B_PRO_EVENT_DEFEntity> GetEntityByProCode(string proCode)
|
{
|
IMongoQuery query = Query.EQ("CN_S_PRO_CODE", proCode);
|
return MongoDBSingleton.Instance.Find<TN_AB_B_PRO_EVENT_DEFEntity>(query, "TN_AB_B_PRO_EVENT_DEF");
|
}
|
#endregion
|
|
public List<TN_WM_TRANSPORT_TASKEntity> GetNotEndTask(string startBit)
|
{
|
string strSql = @"select CN_S_TASK_NO from TN_WM_TRANSPORT_TASK
|
where (CN_S_START_BIT=:CN_S_START_BIT or CN_S_END_BIT=:CN_S_END_BIT)
|
and CN_S_STATE in('未执行','执行中','取货完成')";
|
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
|
DataAccess.AddInParameter(cmd, "CN_S_START_BIT", DbType.String, startBit);
|
DataAccess.AddInParameter(cmd, "CN_S_END_BIT", DbType.String, startBit);
|
return DataAccessExtensive.ExecuteListEntity<TN_WM_TRANSPORT_TASKEntity>(this.DataAccess, cmd, (entity, reader) =>
|
{
|
entity.CN_S_TASK_NO = reader["CN_S_TASK_NO"].ToString().Trim();
|
});
|
}
|
|
#region 改变任务状态
|
/// <summary>
|
/// 改变任务状态
|
/// </summary>
|
/// <param name="lstGuid">主键</param>
|
/// <param name="State">状态</param>
|
/// <returns></returns>
|
public SqlExecuteResult CheckState(string taskNo, string State, DbTransaction trans)
|
{
|
StringBuilder strSql = new StringBuilder();
|
strSql.Append(" UPDATE TN_WM_TRANSPORT_TASK SET CN_S_STATE=@CN_S_STATE ");
|
if (State == "执行中")
|
{
|
strSql.Append(",CN_T_START=@CN_T_START ");
|
}
|
if (State == "完成")
|
{
|
strSql.Append(",CN_T_END=@CN_T_END ");
|
}
|
strSql.Append(" where CN_S_TASK_NO=@CN_S_TASK_NO ");
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
DataAccess.AddInParameter(cmd, "CN_S_STATE", ComDbType.STRING, State);
|
DataAccess.AddInParameter(cmd, "CN_S_TASK_NO", ComDbType.STRING, taskNo);
|
DataAccess.AddInParameter(cmd, "CN_T_START", ComDbType.DATE, DateTime.Now);
|
DataAccess.AddInParameter(cmd, "CN_T_END", ComDbType.DATE, DateTime.Now);
|
return ExecuteCommand(cmd, trans);
|
}
|
#endregion
|
|
/// <summary>
|
/// 判断指定托盘是否存在未执行结束的任务
|
/// </summary>
|
/// <param name="objCode"></param>
|
/// <returns></returns>
|
public bool GetNotExecutedTaskByObj(string objCode)
|
{
|
string strSql = @"select CN_S_CIR_OBJ_CODE from TN_WM_TRANSPORT_TASK where
|
CN_S_CIR_OBJ_CODE=:CN_S_CIR_OBJ_CODE and CN_S_STATE in('未执行','执行中','取货完成')";
|
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
|
DataAccess.AddInParameter(cmd, "CN_S_CIR_OBJ_CODE", DbType.String, objCode);
|
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
|
return dt.Rows.Count > 0;
|
}
|
|
public SqlExecuteResult UpdateTaskPostion(string taskNo, string position, string area, string type, DbTransaction trans)
|
{
|
string sql = string.Empty;
|
if (type == "start")
|
{
|
sql = "UPDATE TN_WM_TRANSPORT_TASK SET CN_S_START_BIT ='" + position + "',CN_S_START_AREA='" + area + "' WHERE CN_S_TASK_NO=:CN_S_TASK_NO";
|
}
|
else
|
{
|
sql = "UPDATE TN_WM_TRANSPORT_TASK SET CN_S_END_BIT ='" + position + "',CN_S_END_AREA='" + area + "' WHERE CN_S_TASK_NO=:CN_S_TASK_NO";
|
}
|
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
|
DataAccess.AddInParameter(cmd, "CN_S_TASK_NO", DbType.String, taskNo);
|
return ExecuteCommand(cmd, trans);
|
}
|
public SqlExecuteResult UpdateTaskAuto(string taskNo, string taskState, DbTransaction trans)
|
{
|
string strSql = "UPDATE TN_WM_TRANSPORT_TASK SET CN_C_IS_AUTO=:CN_C_IS_AUTO where CN_S_TASK_NO=:CN_S_TASK_NO";
|
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
|
DataAccess.AddInParameter(cmd, "CN_C_IS_AUTO", ComDbType.CHAR, taskState);
|
DataAccess.AddInParameter(cmd, "CN_S_TASK_NO", DbType.String, taskNo);
|
return ExecuteCommand(cmd, trans);
|
}
|
}
|
}
|