From cfb616bf02b554b185f04bf92a8b8af489490102 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期一, 17 十一月 2025 16:38:37 +0800
Subject: [PATCH] 栈板绑定代码提交
---
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index 0e4d2c6..4aca56d 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -740,5 +740,183 @@
return result;
}
+
+ public string[] SyncStackCodeFromApi(string stackCode, string loginId)
+ {
+ string[] msg = new string[2];
+ msg[0] = "true";
+
+ var sqlHelper = new OracleSQLHelper();
+ var (conn, tran) = sqlHelper.BeginTransaction();
+
+ try
+ {
+ // ---------------------------
+ // 1. 鍒ゆ柇鏄惁宸插叆搴擄紙IS_INBOUND = 1锛�
+ // ---------------------------
+ string sqlCheck = @"
+ SELECT COUNT(*)
+ FROM MES_PALLET_BINDING
+ WHERE STACKCODE = :stackCode
+ AND IS_INBOUND = 1";
+
+ int count = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(
+ conn,
+ tran,
+ sqlCheck,
+ new[] { new OracleParameter(":stackCode", stackCode) }
+ ));
+
+ if (count > 0)
+ {
+ msg[0] = "false";
+ msg[1] = $"璇ユ爤鏉垮凡鍏ュ簱锛屼笉鍏佽閲嶆柊缁戝畾锛佹爤鏉跨爜锛歿stackCode}";
+ tran.Rollback();
+ return msg;
+ }
+
+
+ // ---------------------------
+ // 2. 璋冪敤鎺ュ彛鑾峰彇鏈�鏂� SN 鍒楄〃
+ // ---------------------------
+ var apiUrl = "http://no2api.dream-maker.com/storage/getTransferList";
+ var reqObj = new { stackCode = stackCode };
+ string jsonReq = Newtonsoft.Json.JsonConvert.SerializeObject(reqObj);
+
+ string apiResult = HttpHelper.HttpPost(apiUrl, jsonReq);
+ var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(apiResult);
+
+ if ((int)obj.code != 0)
+ {
+ msg[0] = "false";
+ msg[1] = "鎺ュ彛杩斿洖閿欒锛�" + (string)obj.msg;
+ tran.Rollback();
+ return msg;
+ }
+
+ var snList = obj.data.snList;
+ if (snList == null || snList.Count == 0)
+ {
+ msg[0] = "false";
+ msg[1] = "鎺ュ彛杩斿洖SN鍒楄〃涓虹┖锛�";
+ tran.Rollback();
+ return msg;
+ }
+
+
+ // ---------------------------
+ // 3. 鍒犻櫎鏃х粦瀹�
+ // ---------------------------
+ string sqlDelete = @"DELETE FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
+
+ sqlHelper.ExecuteNonQueryWithTransaction(
+ sqlDelete,
+ new[] { new OracleParameter(":stackCode", stackCode) },
+ conn,
+ tran
+ );
+
+
+ // ---------------------------
+ // 4. 鎵归噺鎻掑叆锛堟柟寮� 1锛氭彁鍓嶅鐞� transitTime锛�
+ // ---------------------------
+ int rowCount = snList.Count;
+
+ string[] arrSnNo = new string[rowCount];
+ string[] arrStackCode = new string[rowCount];
+ string[] arrLoginId = new string[rowCount];
+ string[] arrCreatedBy = new string[rowCount];
+ DateTime?[] arrTransitTime = new DateTime?[rowCount];
+ string[] arrLineNo = new string[rowCount];
+
+ for (int i = 0; i < rowCount; i++)
+ {
+ arrSnNo[i] = (string)snList[i].snNo;
+ arrStackCode[i] = stackCode;
+ arrLoginId[i] = loginId;
+ arrCreatedBy[i] = loginId;
+ arrLineNo[i] = (string)snList[i].lineNo;
+
+ // ------------------------
+ // transitTime 杞崲锛堝叧閿級
+ // ------------------------
+ string timeStr = (string)snList[i].transitTime;
+
+ if (string.IsNullOrWhiteSpace(timeStr))
+ {
+ arrTransitTime[i] = null;
+ }
+ else
+ {
+ DateTime dt;
+ if (DateTime.TryParse(timeStr, out dt))
+ arrTransitTime[i] = dt;
+ else
+ arrTransitTime[i] = null; // 闈炴硶鏃堕棿鐩存帴缃┖
+ }
+ }
+
+ string sqlBatchInsert = @"
+ INSERT INTO MES_PALLET_BINDING
+ (ID, STACKCODE, LOGIN_ID, SN_NO, TICKET_NO, MEDIUMBOXCODE, CREATE_DATE, CREATED_BY, BIND_TRANSIT_TIME, LINE_NO)
+ VALUES
+ (
+ SEQ_MES_PALLET_BINDING_ID.NEXTVAL,
+ :STACKCODE,
+ :LOGIN_ID,
+ :SN_NO,
+ NULL,
+ NULL,
+ SYSDATE,
+ :CREATED_BY,
+ :BIND_TRANSIT_TIME,
+ :LINE_NO
+ )";
+
+ using (OracleCommand cmd = (OracleCommand)conn.CreateCommand())
+ {
+ cmd.Transaction = (OracleTransaction)tran;
+ cmd.CommandText = sqlBatchInsert;
+ cmd.ArrayBindCount = rowCount;
+
+ cmd.Parameters.Add(new OracleParameter(":STACKCODE", arrStackCode));
+ cmd.Parameters.Add(new OracleParameter(":LOGIN_ID", arrLoginId));
+ cmd.Parameters.Add(new OracleParameter(":SN_NO", arrSnNo));
+ cmd.Parameters.Add(new OracleParameter(":CREATED_BY", arrCreatedBy));
+
+ // 鍏抽敭锛歯ull 浼氳嚜鍔ㄥ瓨涓� Oracle NULL
+ var pTransit = new OracleParameter(":BIND_TRANSIT_TIME", OracleDbType.Date);
+ pTransit.Value = arrTransitTime;
+ cmd.Parameters.Add(pTransit);
+
+ cmd.Parameters.Add(new OracleParameter(":LINE_NO", arrLineNo));
+
+ cmd.ExecuteNonQuery();
+ }
+
+
+ // ---------------------------
+ // 5. 鎻愪氦浜嬪姟
+ // ---------------------------
+ tran.Commit();
+ msg[1] = "鍚屾鎴愬姛锛�";
+ }
+ catch (Exception ex)
+ {
+ tran.Rollback();
+ msg[0] = "false";
+ msg[1] = ex.Message;
+ throw;
+ }
+ finally
+ {
+ sqlHelper.CloseConnection(conn);
+ }
+
+ return msg;
+ }
+
+
+
}
}
--
Gitblit v1.9.3