From aa7daf29da4f6cda2c10a622a92bf86aa9820327 Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期四, 16 一月 2025 15:38:37 +0800
Subject: [PATCH] 自动分道 零箱 剔除
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs | 3
Admin.NET/WCS.Application/Model/TaskRequest.cs | 5 +
3 files changed, 231 insertions(+), 6 deletions(-)
diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 7c5a21d..9a7a77e 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -407,6 +407,11 @@
/// 鍌ㄥ瓨鏈熻嚦
/// </summary>
public string StoreTime { get; set; }
+
+ /// <summary>
+ /// 浜х嚎缂栧彿鎴栧悕绉�
+ /// </summary>
+ public string LineNo { get; set; }
/// <summary>
/// 鏉ユ簮 鍥哄畾鍊糩璧嬬爜]
/// </summary>
diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index 936a6af..e3d0acf 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -268,6 +268,7 @@
SkuName = models.SkuName,
Standard = models.Standard,
LotNo = models.LotNo,
+ LineNo = models.LineNo, // 浜х嚎鍙锋垨浜х嚎鍚嶇О
Qty = item2.Qty,
FullQty = models.FullQty,
//SupplierLot = models.SupplierLot,
@@ -283,7 +284,7 @@
BoxNo3 = item2.BoxNo3,
QtyCount = item2.QtyCount,
QtyOrd = item2.QtyOrd,
-
+
Status = "0",
Level = level,
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 204f571..2c61b1f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -16,6 +16,7 @@
using System.Data;
using System.Reflection.Emit;
using WCS.Application.Entity;
+using WCS.Application.Service.WcsDevice.Dto;
using WCS.Application.Util;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityUpdateStoreRequest.Types;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.NontaxInsertBillRequest.Types.CardExtra.Types.BillCard.Types;
@@ -1871,11 +1872,12 @@
}
}
}
- // 鏍规嵁绠卞唴鍝佺鍙疯幏鍙栫爜韬茬粦瀹氬伐浣嶅強瀵瑰簲鐨勫垎閬撳彿
- var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo && w.Status == "1");
- if (checkTaskInfo == null)
+
+
+ // 楠岃瘉鏄惁闆剁
+ if (boxInfo.BitBoxMark == "1")
{
- // 缁戝畾淇℃伅涓簄ull鍐欏叆鍓旈櫎閫氶亾鍙�
+ // 鏄浂绠辩洿鎺ュ墧闄わ紝杩涜浜哄伐缁勬墭
var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
if (ret.IsSucceed)
{
@@ -1883,10 +1885,227 @@
var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
if (retVal.IsSucceed)
{
- Log.Error("绠辩爜鏈粦瀹氬垎鎷d换鍔★紝杩涜鍓旈櫎銆�");
+ Log.Error("闆剁锛岃繘琛屽墧闄ゃ��");
break;
}
}
+ break;
+ }
+
+
+ // 鏍规嵁绠卞唴鍝佺鍙疯幏鍙栫爜韬茬粦瀹氬伐浣嶅強瀵瑰簲鐨勫垎閬撳彿
+ var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo && w.Status == "1");
+ if (checkTaskInfo == null)
+ {
+ // 鍒ゆ柇鏄惁鍏宠仈鍗曟嵁 wcsordertask
+ var orderModel = _db.Queryable<WcsOderTask>()
+ .First(m => m.SkuNo == boxInfo.SkuNo && m.Status== TaskStatusEnum.Wait && m.LotNo == boxInfo.LotNo && m.IsDelete == false);
+ if (orderModel != null)
+ {
+ // 鏍规嵁boxinfo琛ㄤ骇绾垮瓧娈佃嚜鍔ㄧ粦瀹氬垎閬�(1绾夸骇鍝佸彧鑳界粦瀹氬埌8閬�)
+ if (boxInfo.LineNo != "1")
+ {// 缁戝畾鍒伴櫎8閬撳鍏朵粬閬�
+
+ // 鑾峰彇鏈粦瀹氶亾
+ var lineNoModels = _db.Queryable<WcsCheckTask>()
+ .Where(m => m.Status == "0" && m.LineNo != "8" && m.RoboatType == PLCTypeEnum.RobotPalletizer).ToList();
+ if (lineNoModels.Count > 0)
+ {
+ // 鑾峰彇褰撳墠鐗╂枡鍝佺鍙�
+ var skuInfo = await _db.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == boxInfo.SkuNo).FirstAsync();
+ if (skuInfo == null)
+ {
+ // 姝や骇鍝佽嫢娌¤瀹氬搧瑙勶紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+ break;
+ }
+ }
+ break;
+ }
+
+ foreach (var lineNoModel in lineNoModels)
+ {
+ // 璇诲彇璁惧楠岃瘉鏄惁缁戝畾鍒嗛亾
+ var (respg, pzNo) = plcConn.GetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos);
+ if (respg.IsSucceed)
+ {
+ if (pzNo != 0)
+ {
+ // plc姝ゅ垎閬撴湭瑙g粦
+ break;
+ }
+ else
+ {
+ // 鑷姩缁戝畾鍒嗛亾
+ lineNoModel.OrderNo = orderModel.OrderNo;
+ lineNoModel.LotNo = boxInfo.LotNo;
+ lineNoModel.SkuNo = boxInfo.SkuNo;
+ lineNoModel.SkuName = boxInfo.SkuName;
+ lineNoModel.Qty = orderModel.Qty;
+ lineNoModel.Status = "1";//宸茬粦瀹�
+ lineNoModel.PZNo = skuInfo.PZNo;
+
+ // 缁橮LC鍐欏叆鍝佽
+ var ret = plcConn.SetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos, skuInfo.PZNo);
+ if (ret.IsSucceed)
+ {
+ //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+ _db.Updateable(lineNoModel).ExecuteCommand();
+ //鏇存柊WcsOderTask琛�
+ orderModel.Status = TaskStatusEnum.Doing;
+ _db.Updateable(orderModel).ExecuteCommand();
+ // Liudl 閫氱煡鍓嶇鏇存柊鍒嗘嫞浠诲姟
+ //涓嬪彂鍒嗘嫞浠诲姟
+ HubUtil.PublicCheckTask(lineNoModel.Adapt<WcsDeviceTaskOrderDto>());
+ break;
+ }
+ else
+ {
+ throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粦瀹氬け璐ワ紒");
+ }
+ }
+ }
+ else
+ {
+ // 璇诲彇plc澶辫触
+ break;
+ }
+ }
+
+ }
+ else
+ {
+ // 鑻ユ病鏈夌┖闂查亾锛岃繘琛屽墧闄ゅ鐞嗐�傞槻姝㈠牭濉炰欢绠辩嚎
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+ break;
+ }
+ }
+ break;
+ }
+ }
+ else
+ {// 缁戝畾鍒�8閬�
+ // 鑾峰彇鏈粦瀹氶亾
+ var lineNo8Model = _db.Queryable<WcsCheckTask>()
+ .First(m => m.Status == "0" && m.LineNo == "8" && m.RoboatType == PLCTypeEnum.RobotPalletizer);
+ if (lineNo8Model != null)
+ {
+ // 鑾峰彇褰撳墠鐗╂枡鍝佺鍙�
+ var skuInfo = await _db.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == boxInfo.SkuNo).FirstAsync();
+ if (skuInfo == null)
+ {
+ // 姝や骇鍝佽嫢娌¤瀹氬搧瑙勶紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+ break;
+ }
+ }
+ break;
+ }
+
+
+ // 璇诲彇璁惧楠岃瘉鏄惁缁戝畾鍒嗛亾
+ var (respg, pzNo) = plcConn.GetPlcDBValue(lineNo8Model.PosType, lineNo8Model.DbNumber, lineNo8Model.PlcPos);
+ if (respg.IsSucceed)
+ {
+ if (pzNo != 0)
+ {
+ // plc姝ゅ垎閬撴湭瑙g粦
+ break;
+ }
+ else
+ {
+ // 鑷姩缁戝畾鍒嗛亾
+ lineNo8Model.OrderNo = orderModel.OrderNo;
+ lineNo8Model.LotNo = boxInfo.LotNo;
+ lineNo8Model.SkuNo = boxInfo.SkuNo;
+ lineNo8Model.SkuName = boxInfo.SkuName;
+ lineNo8Model.Qty = orderModel.Qty;
+ lineNo8Model.Status = "1";//宸茬粦瀹�
+ lineNo8Model.PZNo = skuInfo.PZNo;
+
+ // 缁橮LC鍐欏叆鍝佽
+ var ret = plcConn.SetPlcDBValue(lineNo8Model.PosType, lineNo8Model.DbNumber, lineNo8Model.PlcPos, skuInfo.PZNo);
+ if (ret.IsSucceed)
+ {
+ //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+ _db.Updateable(lineNo8Model).ExecuteCommand();
+ //鏇存柊WcsOderTask琛�
+ orderModel.Status = TaskStatusEnum.Doing;
+ _db.Updateable(orderModel).ExecuteCommand();
+
+ // Liudl 閫氱煡鍓嶇鏇存柊鍒嗘嫞浠诲姟
+ //涓嬪彂鍒嗘嫞浠诲姟
+ HubUtil.PublicCheckTask(lineNo8Model.Adapt<WcsDeviceTaskOrderDto>());
+ break;
+ }
+ else
+ {
+ throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粦瀹氬け璐ワ紒");
+ }
+ }
+ }
+ else
+ {
+ // 璇诲彇plc澶辫触
+ break;
+ }
+
+
+ }
+ else
+ {
+ // 娌℃湁绌洪棽閬擄紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ // 涓嶅叧鑱斿崟鎹洿鎺ヨ繘琛屽墧闄ゅ鐞�
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("绠辩爜鏈粦瀹氬垎鎷d换鍔★紝杩涜鍓旈櫎銆�");
+ break;
+ }
+ }
+ }
}
else
{
--
Gitblit v1.8.0