zjh
昨天 c8ec9ec6d9d149eaac6ad78bedd980c3be1c3b5f
产测解绑sn代码提交
已修改3个文件
已添加1个文件
180 ■■■■■ 文件已修改
StandardPda/MES.Service/DB/OracleSQLHelper.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/UnbindAsnInfoDto.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/DB/OracleSQLHelper.cs
@@ -65,6 +65,17 @@
            return command.ExecuteNonQuery();
        }
    }
    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)
    {
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,5 +466,91 @@
        }
        /// <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
@@ -224,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);
            }
        }
    }
}