From 7ee2e58c300374a15c212f9145ba9d762d64e0e6 Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期六, 20 十二月 2025 15:58:11 +0800
Subject: [PATCH] 1.新增MES_PROJECT.cs
---
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs | 281 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 237 insertions(+), 44 deletions(-)
diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index 7acaa01..4aca56d 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -47,7 +47,7 @@
// " left join mes_items s on s.id = C.daa002" +
// " where WORKSNO='" + id + "' and DAA018='宸插紑宸�' order by DAA016 asc";
//var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum\r\nfrom WOMDAA C\r\n left join mes_items s on s.id = C.daa002\r\nleft join womcaa A on A.caa001=C.daa021\r\nwhere C.DAA015 = '" + LineId + "'\r\n and DAA018 = '宸插紑宸�' and A.CAA023='2'\r\norder by DAA016 asc";
- var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum\r\nfrom WOMDAA C\r\n left join mes_items s on s.id = C.daa002\r\nleft join womcaa A on A.caa001=C.daa021\r\nleft join MESPROJECT_LIKE_CCLOGIN pr1 on A.PROJECT=pr1.PROJECT_ID\r\nleft join MESLINE_LIKE_CCLOGIN_WORKS2 pr2 on pr1.id=pr2.LOGINID\r\nwhere C.DAA015 = '" + LineId + "' and pr2.WORKSNO='"+ LoginId + "'\r\n and DAA018 = '宸插紑宸�' and A.CAA023='2'\r\norder by DAA016 asc";
+ var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum\r\nfrom WOMDAA C\r\n left join mes_items s on s.id = C.daa002\r\nleft join womcaa A on A.caa001=C.daa021\r\nleft join MESPROJECT_LIKE_CCLOGIN pr1 on A.PROJECT=pr1.PROJECT_ID\r\nleft join MESLINE_LIKE_CCLOGIN_WORKS2 pr2 on pr1.id=pr2.LOGINID\r\nwhere C.DAA015 = '" + LineId + "' and pr2.WORKSNO='"+ LoginId + "'\r\n and DAA018 = '宸插紑宸�' and A.CAA023='2' and nvl(a.ISCANCEL,0) <>1 \r\norder by DAA016 asc";
return SQLHelper.ExecuteQuery(sql1);
}
@@ -222,25 +222,38 @@
try
{
// 1. 涓昏〃鎻掑叆
- var sql1 = @"
- INSERT INTO MES_SN_STATUS_DETAILS
- (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE)
- VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
- :ticketNo,
- :snNo,
- :workstationNo,
- :snState,
- :loginId,
- :turnoverCode)";
+ // var sql1 = @"
+ //INSERT INTO MES_SN_STATUS_DETAILS
+ // (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE,LINE_NO)
+ // VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
+ // :ticketNo,
+ // :snNo,
+ // :workstationNo,
+ // :snState,
+ // :loginId,
+ // :turnoverCode,select nvl(DAA015,'') from WOMDAA where DAA001 = ':ticketNo' and ROWNUM=1)";
+ // 1. 涓昏〃鎻掑叆
+ var sql1 = @"
+ INSERT INTO MES_SN_STATUS_DETAILS
+ (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE, LINE_NO) values (
+ SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
+ :ticketNo,
+ :snNo,
+ :workstationNo,
+ :snState,
+ :loginId,
+ :turnoverCode,
+ :LINE_NO)";
var parameters1 = new[]
{
- new OracleParameter(":ticketNo", asnInfo.tickeNo ?? (object)DBNull.Value),
- new OracleParameter(":snNo", asnInfo.snNo ?? (object)DBNull.Value),
- new OracleParameter(":workstationNo", asnInfo.workstationNo ?? (object)DBNull.Value),
- new OracleParameter(":snState", asnInfo.snState ?? (object)DBNull.Value),
- new OracleParameter(":loginId", asnInfo.loginId ?? (object)DBNull.Value),
- new OracleParameter(":turnoverCode", asnInfo.turnoverCode ?? (object)DBNull.Value)
+ new OracleParameter("ticketNo", asnInfo.tickeNo ?? (object)DBNull.Value),
+ new OracleParameter("snNo", asnInfo.snNo ?? (object)DBNull.Value),
+ new OracleParameter("workstationNo", asnInfo.workstationNo ?? (object)DBNull.Value),
+ new OracleParameter("snState", asnInfo.snState ?? (object)DBNull.Value),
+ new OracleParameter("loginId", asnInfo.loginId ?? (object)DBNull.Value),
+ new OracleParameter("turnoverCode", asnInfo.turnoverCode ?? (object)DBNull.Value),
+ new OracleParameter("LINE_NO", asnInfo.lineNo ?? (object)DBNull.Value)
};
int i = sqlHelper.ExecuteNonQueryWithTransaction(sql1, parameters1, connection, transaction);
@@ -264,11 +277,11 @@
var parameters2 = new[]
{
- new OracleParameter(":defectIssue", item.DefectIssue ?? (object)DBNull.Value),
- new OracleParameter(":rootCause", item.RootCause ?? (object)DBNull.Value),
- new OracleParameter(":repairMethod", item.RepairMethod ?? (object)DBNull.Value),
- new OracleParameter(":materialHandling", item.MaterialHandling ?? (object)DBNull.Value),
- new OracleParameter(":loginId", asnInfo.loginId ?? (object)DBNull.Value)
+ new OracleParameter("defectIssue", item.DefectIssue ?? (object)DBNull.Value),
+ new OracleParameter("rootCause", item.RootCause ?? (object)DBNull.Value),
+ new OracleParameter("repairMethod", item.RepairMethod ?? (object)DBNull.Value),
+ new OracleParameter("materialHandling", item.MaterialHandling ?? (object)DBNull.Value),
+ new OracleParameter("loginId", asnInfo.loginId ?? (object)DBNull.Value)
};
sqlHelper.ExecuteNonQueryWithTransaction(sql2, parameters2, connection, transaction);
@@ -289,7 +302,7 @@
{
// 鏍¢獙
var checkSql = "SELECT COUNT(1) FROM MES_SN_PART_BINDING WHERE PART_SN_NO = :partSn";
- var checkParams = new[] { new OracleParameter(":partSn", partSn ?? (object)DBNull.Value) };
+ var checkParams = new[] { new OracleParameter("partSn", partSn ?? (object)DBNull.Value) };
var exists = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, checkSql, checkParams));
if (exists > 0)
@@ -299,24 +312,25 @@
// 鎻掑叆缁戝畾
var sqlBind = @"
- INSERT INTO MES_SN_PART_BINDING
- (ID, SN_NO, PART_SN_NO, PART_NAME_CN, CREATE_DATE, CREATE_USER)
- VALUES (SEQ_MES_SN_PART_BINDING.NEXTVAL,
- :snNo,
- :partSn,
- :partName,
- SYSDATE,
- :user)";
+ INSERT INTO MES_SN_PART_BINDING
+ (ID, SN_NO, PART_SN_NO, PART_NAME_CN, CREATE_DATE, CREATE_USER)
+ VALUES (SEQ_MES_SN_PART_BINDING.NEXTVAL,
+ :snNo,
+ :partSn,
+ :partName,
+ SYSDATE,
+ :createUser)";
var bindParams = new[]
{
- new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
- new OracleParameter(":partSn", partSn ?? (object)DBNull.Value),
- new OracleParameter(":partName", partName ?? (object)DBNull.Value),
- new OracleParameter(":user", user ?? (object)DBNull.Value)
- };
+ new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+ new OracleParameter("partSn", partSn ?? (object)DBNull.Value),
+ new OracleParameter("partName", partName ?? (object)DBNull.Value),
+ new OracleParameter("createUser", user ?? (object)DBNull.Value)
+};
sqlHelper.ExecuteNonQueryWithTransaction(sqlBind, bindParams, connection, transaction);
+
// 鎻掑叆鏃ュ織
var sqlLog = @"
@@ -327,7 +341,7 @@
:partSn,
:partName,
SYSDATE,
- :user,
+ :createUser,
0)";
sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, bindParams, connection, transaction);
@@ -342,8 +356,8 @@
var unbindParams = new[]
{
- new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
- new OracleParameter(":partSn", partSn ?? (object)DBNull.Value)
+ new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+ new OracleParameter("partSn", partSn ?? (object)DBNull.Value)
};
sqlHelper.ExecuteNonQueryWithTransaction(sqlUnbind, unbindParams, connection, transaction);
@@ -357,15 +371,15 @@
:partSn,
:partName,
SYSDATE,
- :user,
+ :Puser,
1)";
var logParams = new[]
{
- new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
- new OracleParameter(":partSn", partSn ?? (object)DBNull.Value),
- new OracleParameter(":partName", partName ?? (object)DBNull.Value),
- new OracleParameter(":user", user ?? (object)DBNull.Value)
+ new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+ new OracleParameter("partSn", partSn ?? (object)DBNull.Value),
+ new OracleParameter("partName", partName ?? (object)DBNull.Value),
+ new OracleParameter("Puser", user ?? (object)DBNull.Value)
};
sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
@@ -388,6 +402,7 @@
return result;
}
+
/// <summary>
@@ -725,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