123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- using DapperORMCore.Context.DataContext;
- using DapperORMCore.Model.CoreModel;
- using DapperORMCore.Repository.IRepositorys;
- using Microsoft.Extensions.Configuration;
- using NXWMS.IService.NXWMS.Monitor;
- using NXWMS.Model.AppModels.Condition.Monitor;
- using NXWMS.Model.AppModels.Result.Base;
- using NXWMS.Model.AppModels.Result.Monitor;
- 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.Monitor
- {
- /// <summary>
- /// 监控管理服务
- /// </summary>
- [AutoInject(typeof(IWcsMotManageService), InjectType.Scope)]
- public class WcsMotManageService : ServiceBase, IWcsMotManageService
- {
- #region 全局变量、构造注入
- /// <summary>
- /// 系统操作仓储中转
- /// </summary>
- private IDataRepositoryContext _dataContext;
- /// <summary>
- /// SQL节点仓储
- /// </summary>
- private ISQLNodeRepository _iSQLNodeRepository;
- /// <summary>
- /// 配置
- /// </summary>
- private IConfiguration _configuration;
- /// <summary>
- /// 构造注入
- /// </summary>
- /// <param name="dataRepositoryContext"></param>
- /// <param name="configuration"></param>
- /// <param name="iSQLNodeRepository"></param>
- public WcsMotManageService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository)
- {
- this._dataContext = dataRepositoryContext;
- this._configuration = configuration;
- this._iSQLNodeRepository = iSQLNodeRepository;
- }
- #endregion
- #region 库位监控
- /// <summary>
- /// 获取库位监控数据
- /// </summary>
- /// <param name="searchMd">库位监控对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WcsMotBalanceMonitor>> GetBinMonitorData(WcsMotBalanceSearchMd searchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(searchMd.RegionMsg))
- {
- sqlCondition.Append($" AND REGION_CODE = '{searchMd.RegionMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.ShelfMsg))
- {
- sqlCondition.Append($" AND SHELF_CODE = '{searchMd.ShelfMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.DevTypeMsg))
- {
- sqlCondition.Append($" AND DEV_TYPE_CODE = '{searchMd.DevTypeMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.DevMsg))
- {
- sqlCondition.Append($" AND DEV_CODE = '{searchMd.DevMsg}'");
- }
- StringBuilder sqlQueryBinMonitorData = new StringBuilder($@"
- SELECT
- *
- FROM
- VW_WMS_BALANCE_MONITOR
- WHERE
- 1=1
- {sqlCondition}
- ");
- #endregion
- List<WcsMotBalanceMonitor> resultList = new DataRepository<WcsMotBalanceMonitor>(_dataContext).Query(sqlQueryBinMonitorData.ToString()).ToList();
- OperateResultInfo<List<WcsMotBalanceMonitor>> retDataMsg = SuccessStatus(resultList);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WcsMotBalanceMonitor>>($"查询库位监控数据发生异常,【{ex.Message}】", null);
- }
- }
- #endregion
- #region 整线监控
- /// <summary>
- /// 获取整线设备监控数据
- /// </summary>
- /// <param name="searchMd">设备监控查询对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WcsMotBasDevResult>> GetBasDevData(WcsMotBasDevSearchMd searchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(searchMd.DevTypeMsg))
- {
- sqlCondition.Append($" AND DEV_TYPE_CODE = '{searchMd.DevTypeMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.DevMsg))
- {
- sqlCondition.Append($" AND DEV_CODE = '{searchMd.DevMsg}'");
- }
- StringBuilder sqlQueryMotBasDevData = new StringBuilder($@"
- SELECT
- *
- FROM
- VW_WCS_BAS_DEV_MSG
- WHERE
- 1=1
- {sqlCondition}
- ");
- StringBuilder sqlQueryMotOpcItemData = new StringBuilder($@"
- SELECT
- *
- FROM
- VW_WCS_OPC_ITEM_MONITOR
- ");
- #endregion
- List<WcsMotBasDevResult> resultMotBasDevList = new DataRepository<WcsMotBasDevResult>(_dataContext).Query(sqlQueryMotBasDevData.ToString()).ToList();
- List<WcsMotOpcItemStatusResult> resultMotOpcItemList = new DataRepository<WcsMotOpcItemStatusResult>(_dataContext).Query(sqlQueryMotOpcItemData.ToString()).ToList();
- if (resultMotBasDevList.Count > 0)
- {
- foreach (WcsMotBasDevResult item in resultMotBasDevList)
- {
- List<WcsMotOpcItemStatusResult> opcItemMdList = resultMotOpcItemList.FindAll(x=>x.DEV_CODE == item.DEV_CODE);
- item.PlcItemList = opcItemMdList;
- }
- OperateResultInfo<List<WcsMotBasDevResult>> retDataMsg = SuccessStatus(resultMotBasDevList);
- return retDataMsg;
- }
- else
- {
- return FailMessageStatus<List<WcsMotBasDevResult>>($"未查询到整线设备监控数据。", null);
- }
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WcsMotBasDevResult>>($"查询整线设备监控数据发生异常,【{ex.Message}】", null);
- }
- }
- #endregion
- #region 设备状态监控
- /// <summary>
- /// 获取设备状态监控数据
- /// </summary>
- /// <param name="searchMd">设备状态查询对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WcsMotOpcItemStatusResult>> GetWcsMotOpcItemStatusData(WcsMotOpcItemStatusSearchMd searchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(searchMd.DevTypeMsg))
- {
- sqlCondition.Append($" AND DEV_TYPE_CODE = '{searchMd.DevTypeMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.DevMsg))
- {
- sqlCondition.Append($" AND DEV_CODE = '{searchMd.DevMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.OpcGroupMsg))
- {
- sqlCondition.Append($" AND OPC_GROUP_CODE = '{searchMd.OpcGroupMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.DevMsg))
- {
- sqlCondition.Append($" AND (OPC_ITEM_CODE = '{searchMd.OpcItemMsg}' OR OPC_ITEM_NAME like '%{searchMd.OpcItemMsg}%' OR OPC_ITEM_DESC like '%{searchMd.OpcItemMsg}%'");
- }
- if (!string.IsNullOrEmpty(searchMd.PlcMsg))
- {
- sqlCondition.Append($" AND PLC_CODE = '{searchMd.PlcMsg}'");
- }
- if (!string.IsNullOrEmpty(searchMd.OpcItemTypeMsg))
- {
- sqlCondition.Append($" AND OPC_ITEM_TYPE = '{searchMd.OpcItemTypeMsg}'");
- }
- StringBuilder sqlCountMotOpcItemData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WCS_OPC_ITEM_MONITOR WHERE 1=1");
- sqlCountMotOpcItemData.Append(sqlCondition.ToString());
- int pageStartIndex = (searchMd.PageNum - 1) * searchMd.EveryPageQty;
- int pageEndIndex = searchMd.PageNum * searchMd.EveryPageQty;
- StringBuilder sqlQueryMotOpcItemData = new StringBuilder($@"
- SELECT
- *
- FROM
- VW_WCS_OPC_ITEM_MONITOR
- 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<object>(_dataContext).ExecuteScalar(sqlCountMotOpcItemData.ToString()));
- List<WcsMotOpcItemStatusResult> resultMotOpcItemList = new DataRepository<WcsMotOpcItemStatusResult>(_dataContext).Query(sqlQueryMotOpcItemData.ToString()).ToList();
- OperateResultInfo<List<WcsMotOpcItemStatusResult>> retDataMsg = SuccessStatus(resultMotOpcItemList);
- retDataMsg.DataCount = dataCount;
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WcsMotOpcItemStatusResult>>($"查询设备状态监控数据发生异常,【{ex.Message}】", null);
- }
- }
- #endregion
- public OperateResultInfo<List<BasFaultMd>> GetBasFaultMsg()
- {
- try
- {
- string sql = $@"
- SELECT
- A.FAULT_ID,
- A.NEWID,
- A.FAULT_CODE,
- A.FAULT_NAME,
- A.DEV_TYPE_CODE,
- A.[DESCRIBE],
- A.USED_FLAG,
- A.DEL_FLAG,
- A.CREATE_BY,
- B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- A.CREATE_TIME,
- A.UPDATE_BY,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName,
- A.UPDATE_TIME,
- A.DATA_VERSION,
- A.REMARKS1,
- A.REMARKS2,
- A.REMARKS3,
- A.REMARKS4,
- A.REMARKS5
- FROM
- BAS_FAULT A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE
- A.USED_FLAG = 1
- AND A.DEL_FLAG = 0
- ";
- List<BasFaultMd> resultMotOpcItemList = new DataRepository<BasFaultMd>(_dataContext).Query(sql).ToList();
- OperateResultInfo<List<BasFaultMd>> retDataMsg = SuccessStatus(resultMotOpcItemList);
- retDataMsg.DataCount = resultMotOpcItemList.Count;
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<BasFaultMd>>($"查询设备基础报警码数据发生异常,【{ex.Message}】", null);
- }
- }
- }
- }
|