zjh
2025-08-23 d8c87e31b42617a1222c07addfb5edccff069732
产测解绑sn代码提交
已修改4个文件
已添加1个文件
186 ■■■■■ 文件已修改
StandardPda/MES.Service/DB/OracleSQLHelper.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/UnbindAsnInfoDto.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/bin/Debug/net8.0/appsettings.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/DB/OracleSQLHelper.cs
@@ -66,6 +66,18 @@
        }
    }
    public int ExecuteNonQueryWithTransaction(string sql, OracleParameter[] parameters, OracleConnection connection, OracleTransaction transaction)
    {
        using (var cmd = new OracleCommand(sql, connection))
        {
            cmd.Transaction = transaction;
            if (parameters != null)
                cmd.Parameters.AddRange(parameters);
            return cmd.ExecuteNonQuery();
        }
    }
    public int ExecuteTransaction(string query1)
    {
        using (var connection = new OracleConnection(_connectionString))
StandardPda/MES.Service/Dto/service/UnbindAsnInfoDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
namespace MES.Service.Dto.service
{
    public class UnbindAsnInfoDto
    {
        /// <summary>
        /// ç™»å½•号
        /// </summary>
        public string loginId { get; set; }
        /// <summary>
        /// æ“ä½œç±»åž‹: 0=解绑, 1=撤销解绑
        /// </summary>
        public int? ActionType { get; set; }= 0;
        public List<SnList> snList { get; set; }
        public class SnList
        {
            /// <summary>
            /// å·¥å•单号
            /// </summary>
            public string tickeNo { get; set; }
            /// <summary>
            /// sn号
            /// </summary>
            public string snNo { get; set; }
        }
    }
}
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -3,6 +3,7 @@
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.service.BasicData;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
@@ -465,6 +466,91 @@
            return msg;
        }
        /// <summary>
        /// å¤„理解绑 / æ’¤é”€è§£ç»‘
        /// </summary>
        public bool ProcessSn(UnbindAsnInfoDto dto)
        {
            if (dto == null || dto.snList == null || dto.snList.Count == 0)
                throw new ArgumentException("输入参数无效");
            var sqlHelper = new OracleSQLHelper();
            bool result = true;
            var (connection, transaction) = sqlHelper.BeginTransaction();
            try
            {
                foreach (var sn in dto.snList)
                {
                    if (dto.ActionType == 0) // è§£ç»‘
                    {
                        string sql = @"
                            UPDATE MES_SN_STATUS_DETAILS
                               SET IS_UNBIND   = 1,
                                   UNBIND_DATE = SYSDATE,
                                   UNBIND_USER = :LoginId
                             WHERE TICKET_NO   = :TicketNo
                               AND SN_NO       = :SnNo
                               AND NVL(IS_UNBIND, 0) = 0";
                        var parameters = new[]
                        {
                            new OracleParameter(":LoginId", dto.loginId),
                            new OracleParameter(":TicketNo", sn.tickeNo),
                            new OracleParameter(":SnNo", sn.snNo)
                        };
                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
                        if (rows == 0)
                        {
                            throw new Exception($"解绑失败: å·¥å•[{sn.tickeNo}], SN[{sn.snNo}] æœªæ‰¾åˆ°å¯è§£ç»‘记录或已解绑!");
                        }
                    }
                    else if (dto.ActionType == 1) // æ’¤é”€è§£ç»‘
                    {
                        string sql = @"
                            UPDATE MES_SN_STATUS_DETAILS
                               SET IS_UNBIND   = 0,
                                   UNBIND_DATE = NULL,
                                   UNBIND_USER = NULL
                             WHERE TICKET_NO   = :TicketNo
                               AND SN_NO       = :SnNo
                               AND NVL(IS_UNBIND, 0) = 1";
                        var parameters = new[]
                        {
                            new OracleParameter(":TicketNo", sn.tickeNo),
                            new OracleParameter(":SnNo", sn.snNo)
                        };
                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
                        if (rows == 0)
                        {
                            throw new Exception($"撤销解绑失败: å·¥å•[{sn.tickeNo}], SN[{sn.snNo}] æœªæ‰¾åˆ°å·²è§£ç»‘记录!");
                        }
                    }
                    else
                    {
                        throw new Exception("无效的操作类型!只能是 0=解绑 æˆ– 1=撤销解绑");
                    }
                }
                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                result = false;
                // å»ºè®®è¿™é‡Œå†™æ—¥å¿— ex.Message
                throw;
            }
            finally
            {
                connection.Close();
            }
            return result;
        }
    }
}
StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs
@@ -42,6 +42,8 @@
            try
            {
                dynamic resultInfos = new ExpandoObject();
                //var result = m.GetTickeInfo(ccLoginDto.LoginId);
                //传线体编码,根据线体编码获取工单信息
                var result = m.GetTickeInfo(ccLoginDto.LineId, ccLoginDto.LoginId);
                resultInfos.tbBillList = result;
@@ -222,6 +224,59 @@
            }
        }
        /// <summary>
        ///解绑sn码
        /// </summary>
        /// <returns></returns>
        [HttpPost("UnbindAsnInfo")]
        public ResponseResult UnbindAsnInfo(UnbindAsnInfoDto unbindAsnInfoDto)
        {
            var entity = new MessageCenter();
            entity.TableName = TableName;
            entity.Url = URL + "SetStackCode";
            entity.Method = METHOD;
            entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(unbindAsnInfoDto);
            entity.Status = 1;
            entity.CreateBy = "PL017";
            try
            {
                dynamic resultInfos = new ExpandoObject();
                bool result = m.ProcessSn(unbindAsnInfoDto);
                resultInfos.tbBillList = result;
                entity.Result = 0;
                if (result) entity.Result = 1;
                entity.DealWith = 1;
                _manager.save(entity);
                if (result)
                {
                    return new ResponseResult
                    {
                        status = 0,
                        message = "OK",
                        data = resultInfos
                    };
                }
                else
                {
                    return new ResponseResult
                    {
                        status = 1,
                        message = result.ToString(),
                        data = resultInfos
                    };
                }
            }
            catch (Exception ex)
            {
                entity.Result = 0;
                entity.DealWith = 0;
                entity.ResultData = ex.Message;
                _manager.save(entity);
                return ResponseResult.ResponseError(ex);
            }
        }
    }
}
StandardPda/MESApplication/bin/Debug/net8.0/appsettings.json
@@ -10,6 +10,8 @@
  "AppSettings": {
    "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
    "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.104 )(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = xb_prd; Password=xbprd"
    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.104 )(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = xb_dev; Password=xbdev"
    "U9IP": "192.168.1.66:45798" //U9服务器IP地址,小步正式
    //"U9IP": "192.168.1.66:45797" //U9服务器IP地址,小步测试
  }
}