ctu存放
This commit is contained in:
@@ -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<RedisReadConfig> _repository;
|
||||
@@ -101,7 +112,45 @@ namespace Tnb.ProductionMgr
|
||||
break;
|
||||
}
|
||||
}
|
||||
//获取注塑装箱状态
|
||||
//ctu取货
|
||||
private void CheckGet(object state)
|
||||
{
|
||||
Dictionary<string, string[]> getdic = new Dictionary<string, string[]>();
|
||||
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<JObject>(data);
|
||||
bool result = res != null && res["Value"] != null ? res.Value<bool>("Value") : false;
|
||||
if (result)
|
||||
{
|
||||
string codedata = _redisData.GetHash(strs[0], strs[2]).Result;
|
||||
JObject? coderes = JsonConvert.DeserializeObject<JObject>(codedata);
|
||||
string coderesult = coderes != null && coderes["Value"] != null ? coderes.Value<string>("Value")! : "";
|
||||
var DistaskH= _repository.AsSugarClient().Queryable<WmsDistaskH>().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)
|
||||
|
||||
@@ -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
|
||||
/// <summary>
|
||||
/// 任务链编号
|
||||
/// </summary>
|
||||
public string taskChainCode { get; set; }
|
||||
/// <summary>
|
||||
/// 子任务编号
|
||||
/// </summary>
|
||||
public string taskCode { get; set; }
|
||||
/// <summary>
|
||||
/// 起点编号
|
||||
/// </summary>
|
||||
public string sourceName { get; set; }
|
||||
/// <summary>
|
||||
/// 终点编号
|
||||
/// </summary>
|
||||
public string targetName { get; set; }
|
||||
/// <summary>
|
||||
/// 料箱code
|
||||
/// </summary>
|
||||
public string containerCode { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[AllowAnonymous]
|
||||
public async Task CheckPut(CheckPutInput input)
|
||||
{
|
||||
Dictionary<string, string[]> putdic = new Dictionary<string, string[]>();
|
||||
putdic.Add("SSX-021-005", new string[] { "CS05", "ConveyorAllowPutEmptyBox" });
|
||||
putdic.Add("SSX-021-006", new string[] { "CS06", "ConveyorAllowPutEmptyBox" });
|
||||
Dictionary<string, string[]> getdic = new Dictionary<string, string[]>();
|
||||
getdic.Add("SSX-021-005", new string[] { "CS05", "FullBoxAllowGet" });
|
||||
getdic.Add("SSX-021-006", new string[] { "CS06", "FullBoxAllowGet" });
|
||||
// Dictionary<string, string[]> getdic = new Dictionary<string, string[]>();
|
||||
// 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<JObject>(data);
|
||||
bool result = res != null && res["Value"] != null ? res.Value<bool>("Value") : false;
|
||||
if (!result)
|
||||
throw new AppFriendlyException("点位" + input.point_code + "不可放", 500);
|
||||
throw new AppFriendlyException("点位" + input.targetName + "不可放", 500);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user