| | |
| | | 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)); |
| | | |
| | | // å
³é®ï¼null ä¼èªå¨å为 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; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |