496 lines
19 KiB
C#
496 lines
19 KiB
C#
|
|
using WcsMain.ApiServe.Controllers.Dto.WcsDto.WmsTask;
|
|||
|
|
using WcsMain.Common;
|
|||
|
|
using WcsMain.DataBase.TableEntity;
|
|||
|
|
using WcsMain.Enum.TaskEnum;
|
|||
|
|
using WcsMain.WcsAttribute.AutoFacAttribute;
|
|||
|
|
|
|||
|
|
namespace WcsMain.DataBase.Dao;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// tbl_app_wms_task 表的增删改查
|
|||
|
|
/// </summary>
|
|||
|
|
[Component]
|
|||
|
|
public class AppWmsTaskDao
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加记录
|
|||
|
|
/// 注意:尚未清楚是否为事务插入
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWmsTasks"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Insert(params AppWmsTask[] appWmsTasks)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
return CommonTool.DbServe.Insertable(appWmsTasks).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新数据,以主键为条件,主键 : TaskId
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWmsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Update(AppWmsTask appWmsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Updateable(appWmsTask).IgnoreColumns(ignoreAllNullColumns: true);
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除数据,以主键为条件
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWmsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Delete(AppWmsTask appWmsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Deleteable(appWmsTask);
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWmsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
/// <remarks>
|
|||
|
|
/// 时间不在筛选行列
|
|||
|
|
/// </remarks>
|
|||
|
|
public List<AppWmsTask>? Select(AppWmsTask appWmsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>()
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.TaskId), w => w.TaskId == appWmsTask.TaskId)
|
|||
|
|
.WhereIF(appWmsTask.TaskType != null, w => w.TaskType == appWmsTask.TaskType)
|
|||
|
|
.WhereIF(appWmsTask.TaskStatus != null, w => w.TaskStatus == appWmsTask.TaskStatus)
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.Origin), w => w.Origin == appWmsTask.Origin)
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.Destination),
|
|||
|
|
w => w.Destination == appWmsTask.Destination)
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.VehicleNo), w => w.VehicleNo == appWmsTask.VehicleNo)
|
|||
|
|
.WhereIF(appWmsTask.VehicleSize != null, w => w.VehicleSize == appWmsTask.VehicleSize)
|
|||
|
|
.WhereIF(appWmsTask.Weight != null, w => w.Weight == appWmsTask.Weight)
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.CreatePerson),
|
|||
|
|
w => w.CreatePerson == appWmsTask.CreatePerson)
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(appWmsTask.TaskMsg), w => w.TaskMsg == appWmsTask.TaskMsg)
|
|||
|
|
.OrderBy(o => o.CreateTime);
|
|||
|
|
|
|||
|
|
_ = sqlFuc.ToSql();
|
|||
|
|
return sqlFuc.ToList();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找所有数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWmsTask>? Select() => Select(new AppWmsTask());
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/********************************************************* 扩展方法 *****************************************************************/
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保留多少条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="days"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int ClearData(int days)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Deleteable<AppWmsTask>().Where(w => w.CreateTime < DateTime.Now.AddDays(-days));
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 将taskId更新成新的
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="oldTaskId"></param>
|
|||
|
|
/// <param name="newTaskId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public void UpdateTaskId(string? oldTaskId, string? newTaskId) //int
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询数据返回前端
|
|||
|
|
/// 查询数据,按创建时间倒序排列
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWmsTask>? SelectToWeb()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>().OrderByDescending(o => o.CreateTime);
|
|||
|
|
return sqlFuc.ToList();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询任务数据返回前端,只查询未结束的任务
|
|||
|
|
/// 查询数据,按创建时间倒序排列
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWmsTask>? SelectWmsTaskNotEnd()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>().Where(w => w.TaskStatus == (int)WmsTaskStatusEnum.queuing
|
|||
|
|
|| w.TaskStatus == (int)WmsTaskStatusEnum.create
|
|||
|
|
|| w.TaskStatus == (int)WmsTaskStatusEnum.running).OrderByDescending(o => o.CreateTime);
|
|||
|
|
return sqlFuc.ToList();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询自起点索引后的多少条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageRequest"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public (List<AppWmsTask>? wmsTasks, int totalRows) SelectPage(GetWmsTaskWithPageRequest pageRequest)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
int totalRows = 0;
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>()
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(pageRequest.SearchStr),
|
|||
|
|
w => w.Destination!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.Origin!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.VehicleNo!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.TaskId!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.TaskMsg!.Contains(pageRequest.SearchStr!)); // 模糊查询
|
|||
|
|
if (pageRequest.TaskType != default) // 查询任务类型
|
|||
|
|
{
|
|||
|
|
List<int?> taskTypes = [];
|
|||
|
|
pageRequest.TaskType.ForEach(item => taskTypes.Add(item));
|
|||
|
|
sqlFuc.Where(w => taskTypes.Contains(w.TaskType));
|
|||
|
|
}
|
|||
|
|
if (pageRequest.TaskStatus != default) // 查询任务状态
|
|||
|
|
{
|
|||
|
|
List<int?> taskStatuses = [];
|
|||
|
|
pageRequest.TaskStatus.ForEach(item => taskStatuses.Add(item));
|
|||
|
|
sqlFuc.Where(w => taskStatuses.Contains(w.TaskStatus));
|
|||
|
|
}
|
|||
|
|
if (pageRequest.TimeRange is { Count: 2 }) // 时间范围
|
|||
|
|
{
|
|||
|
|
sqlFuc.Where(w => w.CreateTime > pageRequest.TimeRange[0] && w.CreateTime < pageRequest.TimeRange[1]);
|
|||
|
|
}
|
|||
|
|
sqlFuc.OrderByDescending(o => new { o.CreateTime });
|
|||
|
|
var queryResult = sqlFuc.ToPageList(pageRequest.Page!.PageIndex, pageRequest.Page!.PageSize, ref totalRows);
|
|||
|
|
return (queryResult, totalRows);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找未执行完成的任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWmsTask>? SelectNotComplete()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>()
|
|||
|
|
.Where(w => w.TaskStatus != (int)WmsTaskStatusEnum.complete && w.TaskStatus != (int)WmsTaskStatusEnum.err)
|
|||
|
|
.ToList();
|
|||
|
|
return sqlFuc;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 重置任务状态
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="taskId"></param>
|
|||
|
|
/// <param name="newDestination"></param>
|
|||
|
|
/// <param name="resetMsg">重置信息</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string ResetTaskWithTaskId(string? taskId, string? newDestination, string resetMsg)
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(taskId))
|
|||
|
|
{
|
|||
|
|
return "任务号为空";
|
|||
|
|
}
|
|||
|
|
/*
|
|||
|
|
需要执行的操作
|
|||
|
|
1、重置WMS任务表状态
|
|||
|
|
2、删除WCS任务表数据
|
|||
|
|
*/
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms任务状态
|
|||
|
|
if (string.IsNullOrEmpty(newDestination))
|
|||
|
|
{
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WmsTaskStatusEnum.create })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WmsTaskStatusEnum.create, Destination = newDestination })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Destination }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(new AppWcsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WcsTaskStatusEnum.err, Remark = $"{resetMsg}{(string.IsNullOrEmpty(newDestination) ? "" : "新的目的地为:")}{newDestination}" })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Remark }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份wcs任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{taskId}'");
|
|||
|
|
// -- 删除wcs任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == taskId).ExecuteCommand();
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorMessage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 完成任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="taskId"></param>
|
|||
|
|
/// /// <param name="completeText"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string CompleteTaskWithTaskId(string? taskId, string completeText = "")
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(taskId))
|
|||
|
|
{
|
|||
|
|
return "任务号为空";
|
|||
|
|
}
|
|||
|
|
/*
|
|||
|
|
需要执行的操作
|
|||
|
|
1、完成WMS任务表状态
|
|||
|
|
2、删除WCS任务表数据
|
|||
|
|
*/
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms任务状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WmsTaskStatusEnum.complete, EndTime = DateTime.Now, TaskMsg = completeText })
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true)
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(new AppWcsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WcsTaskStatusEnum.complete, Remark = completeText, CompleteTime = DateTime.Now })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Remark, u.CompleteTime }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份WCS任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{taskId}'");
|
|||
|
|
// -- 删除WCS任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == taskId).ExecuteCommand();
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorMessage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 完成任务 ---- 完成最后一个任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="wcsTaskUpdateEntity"></param>
|
|||
|
|
/// <param name="wmsTaskUpdateEntity"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string CompleteTaskWithTaskInfo(AppWcsTask wcsTaskUpdateEntity, AppWmsTask wmsTaskUpdateEntity)
|
|||
|
|
{
|
|||
|
|
/*
|
|||
|
|
需要执行的操作
|
|||
|
|
1、完成WMS任务表状态
|
|||
|
|
2、删除WCS任务表数据
|
|||
|
|
*/
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms任务状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(wmsTaskUpdateEntity)
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true)
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(wcsTaskUpdateEntity)
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true)
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份WCS任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{wmsTaskUpdateEntity.TaskId}'");
|
|||
|
|
// -- 删除WCS任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == wmsTaskUpdateEntity.TaskId).ExecuteCommand();
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorMessage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="taskId"></param>
|
|||
|
|
/// <param name="deleteMsg">删除原因</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string DeleteTaskWithTaskId(string? taskId, string deleteMsg)
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(taskId)) return "任务号为空";
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms表状态
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WmsTaskStatusEnum.err, EndTime = DateTime.Now, TaskMsg = deleteMsg })
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(new AppWcsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WcsTaskStatusEnum.err, Remark = deleteMsg })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Remark }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份WCS任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{taskId}'");
|
|||
|
|
// -- 删除WCS任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == taskId).ExecuteCommand();
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorMessage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 取消任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="taskId"></param>
|
|||
|
|
/// /// <param name="cancelPerson"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string CancelTaskWithTaskId(string? taskId, string cancelPerson)
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(taskId)) return "任务号为空";
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms表状态
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WmsTaskStatusEnum.err, EndTime = DateTime.Now, TaskMsg = $"【{cancelPerson}】取消任务" })
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe
|
|||
|
|
.Updateable(new AppWcsTask()
|
|||
|
|
{ TaskId = taskId, TaskStatus = (int)WcsTaskStatusEnum.err, Remark = $"【{cancelPerson}】取消任务", CompleteTime = DateTime.Now })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Remark, u.CompleteTime }).WhereColumns(w => new { w.TaskId })
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份WCS任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{taskId}'");
|
|||
|
|
// -- 删除WCS任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == taskId).ExecuteCommand();
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorMessage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加记录
|
|||
|
|
/// 注意:尚未清楚是否为事务插入
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWmsTasks"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int InsertTaskAndMarkErr(params AppWmsTask[] appWmsTasks)
|
|||
|
|
{
|
|||
|
|
if (appWmsTasks.Length < 1) return 0;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
int count = 0;
|
|||
|
|
Action action = () => { };
|
|||
|
|
foreach (var wmsTask in appWmsTasks)
|
|||
|
|
{
|
|||
|
|
action += () =>
|
|||
|
|
{
|
|||
|
|
// -- 更新wms表状态
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskStatus = (int)WmsTaskStatusEnum.err, EndTime = DateTime.Now, TaskMsg = $"由于收到新任务,该任务被取消,操作人:{wmsTask.CreatePerson}" })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.TaskMsg, u.EndTime })
|
|||
|
|
.Where(w => w.VehicleNo == wmsTask.VehicleNo && (w.TaskStatus == (int)WmsTaskStatusEnum.queuing || w.TaskStatus == (int)WmsTaskStatusEnum.create))
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 更新wcs任务表状态
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWcsTask()
|
|||
|
|
{ TaskStatus = (int)WcsTaskStatusEnum.err, CompleteTime = DateTime.Now, Remark = $"由于收到新任务,该任务被取消,操作人:{wmsTask.CreatePerson}" })
|
|||
|
|
.UpdateColumns(u => new { u.TaskStatus, u.Remark, u.CompleteTime })
|
|||
|
|
.Where(w => w.VehicleNo == wmsTask.VehicleNo && w.TaskStatus == (int)WcsTaskStatusEnum.create)
|
|||
|
|
.ExecuteCommand();
|
|||
|
|
// -- 备份WCS任务表
|
|||
|
|
CommonTool.DbServe.Ado.ExecuteCommand(
|
|||
|
|
$"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where vehicle_no = '{wmsTask.VehicleNo}' and task_type = {wmsTask.TaskType}");
|
|||
|
|
// -- 删除WCS任务表
|
|||
|
|
CommonTool.DbServe.Deleteable<AppWcsTask>()
|
|||
|
|
.Where(w => w.VehicleNo == wmsTask.VehicleNo && w.TaskType == wmsTask.TaskType).
|
|||
|
|
ExecuteCommand();
|
|||
|
|
// -- 插入WMS任务
|
|||
|
|
CommonTool.DbServe.Insertable(wmsTask).ExecuteCommand();
|
|||
|
|
};
|
|||
|
|
count++;
|
|||
|
|
}
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(action);
|
|||
|
|
if (result.IsSuccess) return count;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex) { _ = ex; }
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|