<add>[important]添加前端查询电子标签货位功能

This commit is contained in:
葛林强 2024-06-15 13:54:11 +08:00
commit 520004b056
9 changed files with 123 additions and 24 deletions

View File

@ -0,0 +1,35 @@
using System.Text.Json.Serialization;
namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
public class QueryLocationWithPageRequest
{
/// <summary>
/// 查询的字符串
/// </summary>
[JsonPropertyName("searchStr")]
public string? SearchStr { get; set; }
/// <summary>
/// 分页信息
/// </summary>
[JsonPropertyName("page")]
public ElTagLocationPage? Page { get; set; }
}
public class ElTagLocationPage
{
/// <summary>
/// 每页大小
/// </summary>
[JsonPropertyName("pageSize")]
public int PageSize { get; set; }
/// <summary>
/// 当前页数
/// </summary>
[JsonPropertyName("pageIndex")]
public int PageIndex { get; set; }
}

View File

@ -67,6 +67,15 @@ public class ElTagController(ElTagService elTagService) : ControllerBase
return _elTagService.AddTaskInfo(request);
}
/// <summary>
/// 分页查询电子标签库位表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("queryLocationWithPage")]
public WcsApiResponse<int, List<AppElTagLocation>> QueryLocationWithPage([FromBody] QueryLocationWithPageRequest request)
{
return _elTagService.QueryLocationWithPage(request);
}
}

View File

@ -11,10 +11,11 @@ using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.ApiServe.Service.WcsService;
[Service]
public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData)
public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData, AppElTagLocationDao tagLocationDao)
{
private readonly DataBaseData _dataBaseData = dataBaseData;
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AppElTagLocationDao _tagLocationDao = tagLocationDao;
/// <summary>
/// 展示电子标签的数字
@ -41,6 +42,24 @@ public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData)
return WcsApiResponseFactory.Success(totalRows, elTagTasks);
}
/// <summary>
/// 分页查询电子标签库位
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public WcsApiResponse<int, List<AppElTagLocation>> QueryLocationWithPage(QueryLocationWithPageRequest request)
{
(List<AppElTagLocation>? elTagLocations, int totalRows) = _tagLocationDao.QueryWithPage(request);
if (elTagLocations == default)
{
return WcsApiResponseFactory.DataBaseErr<int, List<AppElTagLocation>>();
}
return WcsApiResponseFactory.Success(totalRows, elTagLocations);
}
/// <summary>
/// 编辑电子标签任务信息
/// </summary>

View File

@ -13,12 +13,12 @@ namespace WcsMain.Business.CirculationTask.ElTag;
[Circulation]
public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, AppElTagBaseDao elTagBaseDao)
public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, AppElTagLocationDao elTagBaseDao)
{
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AtopOperation _atopOperation = atopOperation;
private readonly AppElTagBaseDao _elTagBaseDao = elTagBaseDao;
private readonly AppElTagLocationDao _elTagBaseDao = elTagBaseDao;
/// <summary>
/// 点亮电子标签
@ -81,7 +81,7 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation,
TaskStatus = (int)ElTagTaskStatusEnum.Lighting,
LightTime = DateTime.Now,
}); // 更新任务状态
_elTagBaseDao.Update(new AppElTagBase { Location = tagTask.Location, TaskId = tagTask.TaskId, LastLightTime = DateTime.Now }); // 更新点位状态,绑定任务
_elTagBaseDao.Update(new AppElTagLocation { Location = tagTask.Location, TaskId = tagTask.TaskId, LastLightTime = DateTime.Now }); // 更新点位状态,绑定任务
return;
}
ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}");

View File

@ -39,7 +39,7 @@ public static class CommonData
/// 电子标签基础资料
/// </summary>
[NotNull]
public static List<AppElTagBase>? AppElTags { get; set; }
public static List<AppElTagLocation>? AppElTags { get; set; }
/// <summary>
/// 输送线的站台

View File

@ -1,11 +1,12 @@
using WcsMain.Common;
using WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
using WcsMain.Common;
using WcsMain.DataBase.TableEntity;
using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.DataBase.Dao;
[Component]
public class AppElTagBaseDao
public class AppElTagLocationDao
{
/// <summary>
@ -13,11 +14,11 @@ public class AppElTagBaseDao
/// </summary>
/// <param name="queryData"></param>
/// <returns></returns>
public List<AppElTagBase>? Query(AppElTagBase queryData)
public List<AppElTagLocation>? Query(AppElTagLocation queryData)
{
try
{
var sqlFuc = CommonTool.DbServe.Queryable<AppElTagBase>()
var sqlFuc = CommonTool.DbServe.Queryable<AppElTagLocation>()
.WhereIF(queryData.Location != default, w => w.Location == queryData.Location)
.WhereIF(queryData.TagName != default, w => w.TagName == queryData.TagName)
.WhereIF(queryData.TagId != default, w => w.TagId == queryData.TagId)
@ -40,14 +41,14 @@ public class AppElTagBaseDao
/// 查询所有
/// </summary>
/// <returns></returns>
public List<AppElTagBase>? Query() => Query(new AppElTagBase());
public List<AppElTagLocation>? Query() => Query(new AppElTagLocation());
/// <summary>
/// 根据主键更新不更新null值
/// </summary>
/// <param name="appElTag"></param>
/// <returns></returns>
public int Update(AppElTagBase appElTag)
public int Update(AppElTagLocation appElTag)
{
try
{
@ -59,9 +60,33 @@ public class AppElTagBaseDao
/// <summary>
/// 分页查询 电子标签库位表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public (List<AppElTagLocation>? elTagLocations, int totalRows) QueryWithPage(QueryLocationWithPageRequest request)
{
try
{
int totalRows = 0;
var sqlFuc = CommonTool.DbServe.Queryable<AppElTagLocation>()
.WhereIF(!string.IsNullOrEmpty(request.SearchStr),
w => w.TaskId!.Contains(request.SearchStr!)
|| w.Location!.Contains(request.SearchStr!)
|| w.TagName!.Contains(request.SearchStr!)
|| w.ControllerDisplayName!.Contains(request.SearchStr!)
|| w.Remark!.Contains(request.SearchStr!));
sqlFuc.OrderBy(o => new { o.Location });
var queryResult = sqlFuc.ToPageList(request.Page!.PageIndex, request.Page!.PageSize, ref totalRows);
return (queryResult, totalRows);
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
@ -79,7 +104,7 @@ public class AppElTagBaseDao
{
try
{
var sqlFuc = CommonTool.DbServe.Updateable<AppElTagBase>()
var sqlFuc = CommonTool.DbServe.Updateable<AppElTagLocation>()
.SetColumns(s => s.LastLightTime == null)
.SetColumns(s => s.TaskId == null)
.Where(w => w.Location == location);

View File

@ -1,69 +1,80 @@
using SqlSugar;
using System.Text.Json.Serialization;
namespace WcsMain.DataBase.TableEntity;
[SugarTable("tbl_app_eltag_base")]
public class AppElTagBase
[SugarTable("tbl_app_eltag_location")]
public class AppElTagLocation
{
/// <summary>
/// 点位
/// </summary>
[SugarColumn(ColumnName = "location", IsPrimaryKey = true)]
[JsonPropertyName("location")]
public string? Location { get; set; }
/// <summary>
/// 标签的名称
/// </summary>
[SugarColumn(ColumnName = "tag_name")]
[JsonPropertyName("tagName")]
public string? TagName { get; set; }
/// <summary>
/// 标签的ID
/// </summary>
[SugarColumn(ColumnName = "tag_id")]
[JsonPropertyName("tagId")]
public int? TagId { get; set; }
/// <summary>
/// 标签类型
/// </summary>
[SugarColumn(ColumnName = "tag_type")]
[JsonPropertyName("tagType")]
public int? TagType { get; set; }
/// <summary>
/// 控制器的别称
/// </summary>
[SugarColumn(ColumnName = "controller_diaplay_name")]
[JsonPropertyName("controllerDisplayName")]
public string? ControllerDisplayName { get; set;}
/// <summary>
/// 所属区域
/// </summary>
[SugarColumn(ColumnName = "area")]
[JsonPropertyName("area")]
public string? Area { get; set; }
/// <summary>
/// LED灯的默认状态
/// </summary>
[SugarColumn(ColumnName = "led_status")]
[JsonPropertyName("ledStatus")]
public int? LedStatus { get; set; }
/// <summary>
/// 上次点亮的时间
/// </summary>
[SugarColumn(ColumnName = "last_light_time")]
[JsonPropertyName("lastLightTime")]
public DateTime? LastLightTime { get; set; }
/// <summary>
/// 当前点亮的任务号
/// </summary>
[SugarColumn(ColumnName = "task_id")]
[JsonPropertyName("taskId")]
public string? TaskId { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName = "remark")]
[JsonPropertyName("remark")]
public string? Remark { get; set; }

View File

@ -14,10 +14,10 @@ namespace WcsMain.ElTag.Atop;
/// 电子标签收到数据的数据处理类
/// </summary>
[Component]
public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation)
public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation)
{
private readonly AppElTagBaseDao _tagBaseDao = tagBaseDao;
private readonly AppElTagLocationDao _tagBaseDao = tagBaseDao;
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AtopOperation _atopOperation = atopOperation;
@ -59,7 +59,7 @@ public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagT
{
// _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
/* 找出这个标签最新点亮的那条记录 */
List<AppElTagBase>? eltags = _tagBaseDao.Query(new AppElTagBase { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId });
List<AppElTagLocation>? eltags = _tagBaseDao.Query(new AppElTagLocation { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId });
if(eltags == default)
{
ConsoleLog.Exception($"【异常】电子标签确认查询数据库标签信息失败,与数据库服务器连连接中断,控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}");

View File

@ -19,7 +19,7 @@ namespace WcsMain.StartAction;
[Component]
public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation,
AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectPlcServe connectPlcServe,
ConnectOprServe connectOprServe, AppElTagBaseDao appElTagBaseDao, AppConveyStandDao conveyStandDao)
ConnectOprServe connectOprServe, AppElTagLocationDao appElTagBaseDao, AppConveyStandDao conveyStandDao)
{
private readonly AppConfigDao _appconfigDao = appConfigDao;
private readonly AppLocationDao _applocationDao = appLocationDao;
@ -29,7 +29,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs
private readonly WcsCirculation _wcsCirculation = wcsCirculation;
private readonly ConnectPlcServe _connectPlcServe = connectPlcServe;
private readonly ConnectOprServe _connectOprServe = connectOprServe;
private readonly AppElTagBaseDao _appElTagBaseDao = appElTagBaseDao;
private readonly AppElTagLocationDao _appElTagBaseDao = appElTagBaseDao;
private readonly AppConveyStandDao _conveyStandDao = conveyStandDao;
private static string _errMsg = string.Empty;
@ -206,7 +206,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs
{
if (!string.IsNullOrEmpty(_errMsg)) return;
//ConsoleLog.Info("正在电子标签基础资料信息...");
List<AppElTagBase>? eltags = _appElTagBaseDao.Query();
List<AppElTagLocation>? eltags = _appElTagBaseDao.Query();
if (eltags == default)
{
_errMsg = "加载电子标签基础信息失败,请检查数据库服务器连接是否正常";