From 5b8bf171b9afda52fa366a72e54eedbd9e6d4d17 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期六, 01 十一月 2025 19:54:25 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng
---
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 170 insertions(+), 2 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs"
index 691f05e..bc1b6d0 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs"
@@ -1,26 +1,194 @@
锘縰sing HslCommunication;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using Quartz.Util;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
+using WIDESEA_DTO.SquareCabin;
using WIDESEA_IWMsInfoServices;
using WIDESEA_Model.Models;
-using WIDESEA_Model.Models.WMSInfo;
+using static WIDESEA_DTO.SquareCabin.AlarmDto;
using static WIDESEA_DTO.SquareCabin.TowcsDto;
namespace WIDESEA_WMsInfoServices
{
public class ContainerService : ServiceBase<Dt_Container, IRepository<Dt_Container>>, IContainerService
{
- public ContainerService(IRepository<Dt_Container> BaseDal) : base(BaseDal)
+ private readonly IMessageInfoService _messageInfoService;
+ public ContainerService(IRepository<Dt_Container> BaseDal, IMessageInfoService messageInfoService) : base(BaseDal)
{
+ _messageInfoService = messageInfoService;
+ }
+
+ public IRepository<Dt_Container> Repository => BaseDal;
+
+ public WebResponseContent Sensor()
+ {
+ try
+ {
+ var url = "http://172.16.1.4:8082/api/environment/sensor";
+ var result = HttpHelper.Get(url);
+ var response = JsonConvert.DeserializeObject<CollResponse<CoolDto>>(result);
+ if (response == null || response.code != "000") throw new Exception("鎺ュ彛杩斿洖鏁版嵁鎶ラ敊");
+ var deviceNames = response.data.Select(x => x.name?.Trim()).Distinct().ToList();
+ var containers = BaseDal.QueryData(x => deviceNames.Contains(x.deviceName)).ToList();
+ List<Dt_Container> containersAdd = new List<Dt_Container>();
+ List<Dt_Container> containersUp = new List<Dt_Container>();
+ foreach (var item in response.data)
+ {
+ Dt_Container? container = containers.Where(x => x.deviceName == item.name).FirstOrDefault();
+ if (container == null)
+ {
+ container = new Dt_Container()
+ {
+ deviceName = item.name,
+ Alarm = item.alarm,
+ CurrentTemperature = item.temperature,
+ Humidity = item.humidity,
+ CreateDate = DateTime.Now,
+ AlarmInformation = item.message
+ };
+ containersAdd.Add(container);
+ }
+ else
+ {
+ container.Alarm = item.alarm;
+ container.CurrentTemperature = item.temperature;
+ container.Humidity = item.humidity;
+ container.AlarmInformation = item.message;
+ container.ModifyDate = DateTime.Now;
+ containersUp.Add(container);
+ }
+ if (item.alarm != "姝e父")
+ {
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm,
+ $"鍐锋煖{item.alarm}", item.message, MessageStatusEnum.Undisposed);
+ }
+ }
+ if (containersAdd.Count > 0) BaseDal.AddData(containersAdd);
+ if (containersUp.Count > 0) BaseDal.UpdateData(containersUp);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ public WebResponseContent Sensor1()
+ {
+ try
+ {
+ var url = "http://172.16.1.4:8082/api/environment/sensor";
+ var result = HttpHelper.Get(url);
+ var response = JsonConvert.DeserializeObject<CollResponse<CoolDto>>(result);
+
+ if (response.code != "000" || response.data == null)
+ {
+ return new WebResponseContent { Status = false, Message = "鎺ュ彛杩斿洖鏁版嵁鎶ラ敊" };
+ }
+
+ // 浣跨敤鎵归噺鎿嶄綔鎻愰珮鎬ц兘
+ var updateList = new List<Dt_Container>();
+ var addList = new List<Dt_Container>();
+ var currentTime = DateTime.Now;
+
+ // 鍏堟煡璇㈡墍鏈夎澶囷紝閬垮厤寰幆涓娆℃煡璇㈡暟鎹簱
+ var deviceNames = response.data.Select(x => x.name).Distinct().ToList();
+ var existingDevices = BaseDal.QueryData(x => deviceNames.Contains(x.deviceName))
+ .ToDictionary(x => x.deviceName, x => x);
+
+ foreach (var item in response.data)
+ {
+ if (existingDevices.TryGetValue(item.name, out var cool))
+ {
+ // 鏇存柊鐜版湁璁板綍
+ cool.CurrentTemperature = item.temperature;
+ cool.Humidity = item.humidity;
+ cool.Alarm = item.alarm;
+ cool.AlarmInformation = item.message;
+ cool.ModifyDate = currentTime;
+ updateList.Add(cool);
+ if (cool.Alarm!="姝e父")
+ {
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, $"鍐锋煖{item.alarm}", item.message, MessageStatusEnum.Undisposed);
+ }
+ }
+ else
+ {
+ // 鍒涘缓鏂拌褰�
+ var dto = new Dt_Container
+ {
+ deviceName = item.name,
+ CurrentTemperature = item.temperature,
+ Humidity = item.humidity,
+ Alarm = item.alarm,
+ AlarmInformation = item.message,
+ CreateDate = currentTime,
+ Creater = "System",
+ ModifyDate = currentTime,
+ Modifier = "System"
+ };
+ addList.Add(dto);
+ if (item.alarm != "姝e父")
+ {
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, $"鍐锋煖{item.alarm}", item.message, MessageStatusEnum.Undisposed);
+ }
+ }
+ }
+
+ // 寮�濮嬩簨鍔�
+ Db.Ado.BeginTran();
+
+ try
+ {
+ // 鎵归噺鎻掑叆鏂拌褰�
+ if (addList.Any())
+ {
+ BaseDal.Db.Insertable(addList).ExecuteCommand();
+ }
+
+ // 鎵归噺鏇存柊鐜版湁璁板綍
+ if (updateList.Any())
+ {
+ BaseDal.Db.Updateable(updateList).ExecuteCommand();
+ }
+
+ // 鎻愪氦浜嬪姟
+ Db.Ado.CommitTran();
+
+ return new WebResponseContent
+ {
+ Status = true,
+ Message = $"鍚屾鎴愬姛锛氭柊澧瀧addList.Count}鏉★紝鏇存柊{updateList.Count}鏉�"
+ };
+ }
+ catch (Exception ex)
+ {
+ Db.Ado.RollbackTran();
+ return new WebResponseContent
+ {
+ Status = false,
+ Message = $"鏁版嵁淇濆瓨澶辫触锛歿ex.Message}"
+ };
+ }
+ }
+ catch (Exception ex)
+ {
+ return new WebResponseContent
+ {
+ Status = false,
+ Message = $"鎺ュ彛璋冪敤澶辫触锛歿ex.Message}"
+ };
+ }
}
}
}
--
Gitblit v1.9.3