From 06e0e3b7d61e95902a6129de2490461cd0693e1d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 15 十月 2025 15:06:40 +0800
Subject: [PATCH] 新增异步方法并优化服务调用逻辑在多个数据库文件中进行了二进制文件的修改、删除和新增操作,可能涉及数据库内容的更新或重建。在 HttpsClient.cs文件中新增了 PostNotLimitAsync方法,用于发送支持 JSON 格式的异步 HTTP POST 请求,并记录请求和响应参数。在 AgingInOrOutInputService.cs文件中,将 HttpsClient.PostAsync替换为PostNotLimitAsync,以利用新方法的功能特性。同时删除了不再需要的注释代码。
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs | 153 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 100 insertions(+), 53 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
index edfdcc7..240cfe1 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
@@ -1,21 +1,13 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection.Metadata;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing Masuit.Tools;
+using SqlSugar;
using WIDESEA_Core.Const;
-using WIDESEA_Core.DB.Models;
using WIDESEA_DTO.MOM;
using WIDESEA_DTO.WMS;
-using WIDESEA_DTO;
-using WIDESEA_Model.Models;
-using WIDESEA_Repository;
-using WIDESEAWCS_BasicInfoRepository;
-using Masuit.Tools;
+using WIDESEA_StorageTaskRepository;
+
+//using WIDESEAWCS_Model.Models;
namespace WIDESEA_StorageTaskServices;
-
public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService
{
@@ -50,36 +42,67 @@
private async Task<WebResponseContent> ProcessOCVB(DtBoxingInfo boxing, Dt_AreaInfo area, RequestTaskDto input)
{
WebResponseContent content = new WebResponseContent();
- // 鍒ゆ柇闇�涓嶉渶瑕佸幓鍖呰锛屼笉闇�瑕佸氨鍘诲父娓╀笁
- var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache");
- var station = stationManagers.Select(x => x.stationChildCode).ToList();
+ try
+ {
+ // 鍒ゆ柇闇�涓嶉渶瑕佸幓鍖呰锛屼笉闇�瑕佸氨鍘诲父娓╀笁
+ //var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine);
- // 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆
- var wcsIpAddrss = GetWCSIpAddress();
- if (wcsIpAddrss == null)
- {
- throw new InvalidOperationException("WCS IP 鏈厤缃�");
- }
+ //var STATION = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position);
- var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result;
- content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
- if (content.Data.ObjToInt() > 0)
- {
- // 閫佽嚦鍖呰
- List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList();
- return await CreateNewTask(input, strings, 3);
- }
- else
- {
- var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
- var strings = config.ConfigValue.Split(',').ToList();
- // 鍏ュ簱閫佽嚦甯告俯3
- var resultContent = await CreateNewTask(input, strings);
- if (resultContent.Status)
+ // 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆
+ var wcsIpAddrss = GetWCSIpAddress();
+
+ //濡傛灉褰撳墠搴撳唴瀛樺湪姣斿綋鍓嶆椂闂寸殑瀵瑰簲浜х嚎鐨勬枡 鍒欏叆搴撹嚦甯告俯3
+ //DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == STATION.productLine && x.OutboundTime < DateTime.Now);
+ //if (stockInfo != null)
{
- await _boxingInfoRepository.AddDataNavAsync(boxing);
+ var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
+ var strings = config.ConfigValue.Split(',').ToList();
+ // 鍏ュ簱閫佽嚦甯告俯3
+ var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
+ if (resultContent.Status)
+ {
+ await _boxingInfoRepository.AddDataNavAsync(boxing);
+ }
+ return resultContent;
}
- return resultContent;
+
+ // TODO 鍒ゆ柇鍦ㄩ�旀暟閲�
+
+ #region OCV甯告俯3鐩存帴鍘诲寘瑁呰矾寰勪笉閫氭閫昏緫涓嶉渶瑕�
+ //var needBarcode = await SqlSugarHelper.DbWCS.Queryable<dt_needBarcode>().FirstAsync(x => x.productLine == STATION.productLine && x.fromArea == "CW");
+ //var needCount = BaseDal.QueryData(x => x.TargetAddress == needBarcode.toArea).Count();
+ //if (needCount < needBarcode.cacheNum)
+ //{
+ // // 閫佽嚦鍖呰
+ // List<string> strings = stationManagers.Where(x => x.stationType == 0 && x.productLine == input.ProductionLine).Select(x => x.Roadway).ToList();
+ // var x = await SqlSugarHelper.DbWCS.Updateable<dt_needBarcode>()
+ // .SetColumns(x => x.inLineNum == x.inLineNum + 1)
+ // .Where(x => x.id == needBarcode.id).ExecuteCommandHasChangeAsync();
+ // ConsoleHelper.WriteSuccessLine($"鍦ㄩ�旀暟閲忔坊鍔爗(x ? "鎴愬姛" : "澶辫触")}鏁伴噺+1,褰撳墠宸ュ簭{boxing.ProcessCode},浜х嚎{input.ProductionLine}");
+ // LogFactory.GetLog("OCVB").InfoFormat(true, $"鍦ㄩ�旀暟閲忔坊鍔爗(x ? "鎴愬姛" : "澶辫触")}鏁伴噺+1,褰撳墠宸ュ簭{boxing.ProcessCode},浜х嚎{input.ProductionLine}", "鏃犲弬鏁�");
+ // return await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings, 3);
+ //}
+ //else
+ //{
+ // var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
+ // var strings = config.ConfigValue.Split(',').ToList();
+ // // 鍏ュ簱閫佽嚦甯告俯3
+ // var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
+ // if (resultContent.Status)
+ // {
+ // await _boxingInfoRepository.AddDataNavAsync(boxing);
+ // }
+ // return resultContent;
+ //}
+
+ #endregion
+ }
+ catch (Exception ex)
+ {
+ ConsoleHelper.WriteErrorLine(ex.Message);
+ LogFactory.GetLog("OCVB").InfoFormat(true, $"锛屽紓甯镐俊鎭細{ex.Message},{ex.StackTrace}", "鏃犲弬鏁�");
+ return content.Error(ex.Message);
}
}
@@ -107,9 +130,13 @@
if (!content.Status) return content.Error("宸ヨ壓鐢宠澶辫触");
var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString());
- if (!resultProcessApply.Success) return content.Error("宸ヨ壓鐢宠澶辫触");
+ if (!resultProcessApply.Success)
+ {
+ return await HandleErrorCells(input, area);
+ //return content.Error("宸ヨ壓鐢宠澶辫触");
+ }
- var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode == boxing.ProcessCode).FirstOrDefault().Number.ToInt32();
+ var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32();
foreach (var item in resultProcessApply.ProcessInfo)
{
if (item.Number.ToInt32() == number + 1)
@@ -124,9 +151,22 @@
{
throw new Exception("鏈壘鍒板叆搴撶珯鍙伴厤缃�");
}
+ //List<string> strings;
+ //if (areaIn == "GWSC1")
+ //{
+ // strings = new List<string>
+ // {
+ // (boxing.ProductionLine != null && boxing.ProductionLine == "ZJ-7") ? "GWSC1" : "GWSC2"
+ // };
+ //}
+ //else
+ //{
+ // strings = stationManagers.Roadway.Split(',').ToList();
+ //}
+
List<string> strings = stationManagers.Roadway.Split(',').ToList();
- var resultContent = await CreateNewTask(input, strings);
+ var resultContent = await CreateNewTask(input, result.ProductionLine, boxing.ProcessCode, strings);
if (resultContent.Status)
{
var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -140,14 +180,19 @@
{
case "CH01":
return "CH001";
+
case "JZ01":
return "JZ001";
+
case "GW01":
return "GWSC1";
+
case "CW01":
return "CWSC1";
+
case "CW02":
return "CWSC2";
+
default:
return string.Empty;
}
@@ -168,21 +213,22 @@
/// <summary>
/// 鐢佃姱NG閫佽嚦NG鍙�
/// </summary>
- private async Task<WebResponseContent> HandleErrorCells(RequestTaskDto input, Dt_AreaInfo area, List<SerialNoDto> serialNosError)
+ private async Task<WebResponseContent> HandleErrorCells(RequestTaskDto input, Dt_AreaInfo area, List<SerialNoDto> serialNosError = null)
{
WebResponseContent content = new WebResponseContent();
// TODO 鍒涘缓浠诲姟閫佽嚦NG鎺掑嚭鍙�
- var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 1 && x.stationChildCode == input.Position && x.stationArea == area.AreaCode).ToList();
- if (stationManagers.Count <= 0)
+ var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 1 && x.stationChildCode == input.Position && x.stationArea == area.AreaCode).FirstOrDefault();
+ if (stationManagers == null)
{
throw new Exception("鏈壘鍒癗G鍏ュ簱绔欏彴閰嶇疆");
}
- List<string> NGStation = stationManagers.Select(x => x.stationNGLocation).ToList();
- if (NGStation.Count <= 0)
- {
- NGStation = stationManagers.Select(x => x.stationNGChildCode).ToList();
- }
- content = await CreateNewTask(input, NGStation, 2);
+ //List<string> NGStation = stationManagers.Roadway.Split(',').ToList();
+ //if (NGStation.Count <= 0)
+ //{
+ // NGStation = stationManagers.stationNGChildCode.Split(',').ToList();
+ //}
+ List<string> NGStation = stationManagers.stationNGChildCode.Split(',').ToList();
+ content = await CreateNewTask(input, input.ProductionLine, "", NGStation, 2);
return content.Error("瀛樺湪寮傚父鐢佃姱");
}
@@ -212,7 +258,8 @@
TargetAddress = task.Roadway,
TaskState = task.TaskState.Value,
Id = 0,
- TaskType = task.TaskType
+ TaskType = task.TaskType,
+ ProductionLine = task.ProductionLine,
};
return new WebResponseContent().OK(data: taskDTO);
}
@@ -240,4 +287,4 @@
{
return await _areaInfoRepository.QueryFirstAsync(x => x.Spare1.Contains(position));
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.3