diff --git a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs index 43b82cbd..918607a7 100644 --- a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs +++ b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs @@ -1,14 +1,24 @@ -using Aop.Api.Domain; +using System; +using System.Dynamic; +using System.Security.Policy; +using Aop.Api.Domain; +using JNPF; using JNPF.Common.Cache; +using JNPF.FriendlyException; using Microsoft.Extensions.Hosting; +using NetTaste; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using Qiniu.Util; using SqlSugar; using Tnb.Common.Redis; +using Tnb.Common.Utils; using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Entities.Dto; using Tnb.ProductionMgr.Entities.Enums; using Tnb.ProductionMgr.Interfaces; +using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Consts; namespace Tnb.ProductionMgr { @@ -16,6 +26,7 @@ namespace Tnb.ProductionMgr public class RedisBackGround : IHostedService, IDisposable { private Timer? Readtimer; + private Timer? CheckGettimer; private readonly RedisData _redisData; private readonly IPrdInstockService _prdInstockService; private readonly ISqlSugarRepository _repository; @@ -101,7 +112,45 @@ namespace Tnb.ProductionMgr break; } } - //获取注塑装箱状态 + //ctu取货 + private void CheckGet(object state) + { + Dictionary getdic = new Dictionary(); + getdic.Add("SSX-021-005", new string[] { "CS05", "FullBoxAllowGet", "Code" }); + getdic.Add("SSX-021-006", new string[] { "CS06", "FullBoxAllowGet", "Code" }); + foreach (var key in getdic.Keys) + { + try + { + var strs = getdic.Where(p => p.Key == key).First().Value; + bool flag = _redisData.HashExist(strs[0], strs[1]).Result; + string data = _redisData.GetHash(strs[0], strs[1]).Result; + JObject? res = JsonConvert.DeserializeObject(data); + bool result = res != null && res["Value"] != null ? res.Value("Value") : false; + if (result) + { + string codedata = _redisData.GetHash(strs[0], strs[2]).Result; + JObject? coderes = JsonConvert.DeserializeObject(codedata); + string coderesult = coderes != null && coderes["Value"] != null ? coderes.Value("Value")! : ""; + var DistaskH= _repository.AsSugarClient().Queryable().Where(p => p.carry_code == coderesult && p.status == WmsWareHouseConst.TASK_BILL_STATUS_RUNING_ID).First(); + dynamic reqBody = new ExpandoObject(); + reqBody.taskCode = DistaskH.bill_code; + reqBody.slotCode = key; + reqBody.containerCode = coderesult; + CancellationTokenSource Ctu = new(); + //{"code":500,"msg":"成功!"} + dynamic respBody = HttpClientHelper.PostStreamAsync("http://192.168.11.104:1880/wcs/notify/cargo", reqBody, Ctu.Token).Result; + Ctu.Dispose(); + } + } + catch (Exception) + { + + } + } + } + + //获取注塑装箱状态 private void GetZSPackStatus(object state) { try @@ -217,10 +266,12 @@ namespace Tnb.ProductionMgr public void Dispose() { Readtimer?.Dispose(); + CheckGettimer?.Dispose(); } public Task StartAsync(CancellationToken cancellationToken) { - Readtimer = new Timer(GetRedisData, null, TimeSpan.Zero, TimeSpan.FromSeconds(300)); + // Readtimer = new Timer(GetRedisData, null, TimeSpan.Zero, TimeSpan.FromSeconds(300)); + CheckGettimer = new Timer(CheckGet, null, TimeSpan.Zero, TimeSpan.FromSeconds(300)); return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CheckPutInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CheckPutInput.cs index c00d5245..0dc409b6 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CheckPutInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CheckPutInput.cs @@ -9,12 +9,26 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs { public class CheckPutInput { - public string point_code { get; set; } - public int type { get; set; } - } - public enum exectype - { - 放 = 0, - 取 = 1 + /// + /// 任务链编号 + /// + public string taskChainCode { get; set; } + /// + /// 子任务编号 + /// + public string taskCode { get; set; } + /// + /// 起点编号 + /// + public string sourceName { get; set; } + /// + /// 终点编号 + /// + public string targetName { get; set; } + /// + /// 料箱code + /// + public string containerCode { get; set; } } + } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 975cbf76..0677e213 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -13,6 +13,7 @@ using JNPF.Common.Security; using JNPF.FriendlyException; using JNPF.Systems.Interfaces.System; using Mapster; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.CodeAnalysis; @@ -241,37 +242,31 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost] + [AllowAnonymous] public async Task CheckPut(CheckPutInput input) { Dictionary putdic = new Dictionary(); putdic.Add("SSX-021-005", new string[] { "CS05", "ConveyorAllowPutEmptyBox" }); putdic.Add("SSX-021-006", new string[] { "CS06", "ConveyorAllowPutEmptyBox" }); - Dictionary getdic = new Dictionary(); - getdic.Add("SSX-021-005", new string[] { "CS05", "FullBoxAllowGet" }); - getdic.Add("SSX-021-006", new string[] { "CS06", "FullBoxAllowGet" }); + // Dictionary getdic = new Dictionary(); + // getdic.Add("SSX-021-005", new string[] { "CS05", "FullBoxAllowGet" }); + // getdic.Add("SSX-021-006", new string[] { "CS06", "FullBoxAllowGet" }); var strs = new string[] { }; - if (input.type == (int)exectype.放) - { - if (!putdic.ContainsKey(input.point_code)) - throw new AppFriendlyException("点位" + input.point_code + "不存在", 500); - strs = putdic.Where(p => p.Key == input.point_code).First().Value; - } - else if (input.type == (int)exectype.取) - { - if (!getdic.ContainsKey(input.point_code)) - throw new AppFriendlyException("点位" + input.point_code + "不存在", 500); - strs = getdic.Where(p => p.Key == input.point_code).First().Value; - } + + if (!putdic.ContainsKey(input.targetName)) + throw new AppFriendlyException("点位" + input.targetName + "不存在", 500); + strs = putdic.Where(p => p.Key == input.targetName).First().Value; + bool flag = await _redisData.HashExist(strs[0], strs[1]); if (!flag) { - throw new AppFriendlyException("点位" + input.point_code + "不存在", 500); + throw new AppFriendlyException("点位" + input.targetName + "不存在", 500); } string data = await _redisData.GetHash(strs[0], strs[1]); JObject? res = JsonConvert.DeserializeObject(data); bool result = res != null && res["Value"] != null ? res.Value("Value") : false; if (!result) - throw new AppFriendlyException("点位" + input.point_code + "不可放", 500); + throw new AppFriendlyException("点位" + input.targetName + "不可放", 500); } ///