zjh
2025-11-28 4b8adf76a495aca73c3a1af9b28a15d19b9a03f4
代码提交
已修改3个文件
361 ■■■■■ 文件已修改
StandardPda/MES.Service/service/QC/SJService.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/WomcaaController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/QC/SJService.cs
@@ -1,9 +1,9 @@
using System.Data;
using MES.Service.DB;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using System.Data;
namespace MES.Service.service.QC;
@@ -35,8 +35,7 @@
    }
    //获取所有数据分页
    public (List<SJPageResult> item, int TotalCount) getPage(
        SJPageResult queryObj)
    public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
@@ -482,7 +481,6 @@
        return useTransactionWithOracle > 0;
    }
    public List<Component> getYzxBDlist(string id)
    {
        OracleSQLHelper SQLHelper = new();
@@ -494,12 +492,10 @@
        var sql1 =
            string.Format(
                @"select CASE WHEN max(MULTI_SELECT) is null THEN ''ELSE '【'||max(MULTI_SELECT)||'】' END  as A,ITEMNAME as ITEMNAME   from MES_IQC_CONSISTENCY_SJ_ck where PID='" +
                id + "' group by ITEMNAME order by ITEMNAME");
                @"select CASE WHEN max(MULTI_SELECT) is null THEN ''ELSE '【'||max(MULTI_SELECT)||'】' END  as A,ITEMNAME as ITEMNAME   from MES_IQC_CONSISTENCY_SJ_ck where PID='" + id + "' group by ITEMNAME order by ITEMNAME");
        //查明细
        var sql2 =
            string.Format(
                @"select * from MES_IQC_CONSISTENCY_SJ_ck where PID='" +
            string.Format(@"select * from MES_IQC_CONSISTENCY_SJ_ck where PID='" +
                id + "' order by ITEMNAME,ITEMMODE,SUPPNAME");
        var dataTable1 = SQLHelper.ExecuteQuery(sql1);
        var dataTable2 = SQLHelper.ExecuteQuery(sql2);
@@ -539,7 +535,18 @@
        return Components;
    }
    /// <summary>
    ///     一致性项目
    /// </summary>
    public class Component
    {
        public string Name { get; set; }
        public List<string> Specs { get; set; }
        public List<string> Manufacturers { get; set; }
        public List<string> Id { get; set; }
        public int SelectedSpec { get; set; }
        public int SelectedMfg { get; set; }
    }
    public void saveYzxBDlist(string id, DataTable DB)
    {
        OracleSQLHelper SQLHelper = new();
@@ -562,7 +569,6 @@
                id + "'and id in(" + rowId + ") ");
        SQLHelper.ExecuteQuery(sql2);
    }
    public string[] YzxImgVerify(string id)
    {
        var msgStr = new string[2];
@@ -576,18 +582,11 @@
        var sql2 = string.Format(
            @"select A.ITEMNAME from ( select 999||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid='" +
            id +
            "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where PID='" +
            id + "'  and MULTI_SELECT is not null)" +
         @"select A.ITEMNAME from ( select 999||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid='" + id.ToString() + "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where PID='" + id.ToString() + "'  and MULTI_SELECT is not null)" +
            "group by  ITEMNAME) A" +
            " left join MES_QS_IMAGE b on a.id=b.fid where B.id is null" +
            " union" +
            " select  '分组:' || MULTI_SELECT as ITEMNAME      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" +
            id +
            "'        and MULTI_SELECT is not null and MULTI_SELECT not in(select  A.MULTI_SELECT as ITEMNAME from (select 888 || min(id) id, MULTI_SELECT      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" +
            id +
            "'       and MULTI_SELECT is not null      group by MULTI_SELECT,ITEMNAME) A        left join MES_QS_IMAGE b on a.id = b.fid where B.id is not null)     group by MULTI_SELECT");
         " select  '分组:' || MULTI_SELECT as ITEMNAME      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" + id.ToString() + "'        and MULTI_SELECT is not null and MULTI_SELECT not in(select  A.MULTI_SELECT as ITEMNAME from (select 999 || min(id) id, MULTI_SELECT      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" + id.ToString() + "'       and MULTI_SELECT is not null      group by MULTI_SELECT,ITEMNAME) A        left join MES_QS_IMAGE b on a.id = b.fid where B.id is not null)     group by MULTI_SELECT");
        var db = SQLHelper.ExecuteQuery(sql2);
        if (db.Rows.Count > 0)
@@ -605,18 +604,5 @@
        }
        return msgStr;
    }
    /// <summary>
    ///     一致性项目
    /// </summary>
    public class Component
    {
        public string Name { get; set; }
        public List<string> Specs { get; set; }
        public List<string> Manufacturers { get; set; }
        public List<string> Id { get; set; }
        public int SelectedSpec { get; set; }
        public int SelectedMfg { get; set; }
    }
}
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -1,10 +1,18 @@
using System.Data;
using Masuit.Tools;
using MES.Service.DB;
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;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.service.Warehouse;
namespace MES.Service.service.Warehouse
{
public class WomdaaManager
{
    /// <summary>
@@ -39,10 +47,14 @@
        //    "                        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\n" +
                "left join womcaa A on A.caa001=C.daa021\r\n" +
                "left join MESPROJECT_LIKE_CCLOGIN pr1 on A.PROJECT=pr1.PROJECT_ID\r\n" +
                "left join MESLINE_LIKE_CCLOGIN_WORKS2 pr2 on pr1.id=pr2.LOGINID\r\n" +
                "left join MES_LINE_ORDER lo on lo.order_no=c.daa001 " +
                "where C.DAA015 = '" + LineId + "' and pr2.WORKSNO='" + LoginId + "'\r\n  and DAA018 = '已开工' and A.CAA023='2' and lo.line_no='" + LineId + "'\r\n" +
                "order by DAA016 asc";
        return SQLHelper.ExecuteQuery(sql1);
    }
@@ -71,6 +83,7 @@
    //        {
    //            result = true;
    //        }
    //    } else { result = false; }
@@ -205,10 +218,11 @@
    //    return result;
    //}
    public bool AddAsnInfo(AsnInfo asnInfo)
    {
        var sqlHelper = new OracleSQLHelper();
        var result = true;
            bool result = true;
        var (connection, transaction) = sqlHelper.BeginTransaction();
@@ -243,25 +257,19 @@
               AND ROWNUM = 1";
            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)
            };
            var i = sqlHelper.ExecuteNonQueryWithTransaction(sql1, parameters1,
                connection, transaction);
                int i = sqlHelper.ExecuteNonQueryWithTransaction(sql1, parameters1, connection, transaction);
            // 2. 失败项插入
            if (i > 0 && asnInfo.failItems?.Count > 0)
                {
                foreach (var item in asnInfo.failItems)
                {
                    var sql2 = @"
@@ -278,24 +286,20 @@
                    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);
                        sqlHelper.ExecuteNonQueryWithTransaction(sql2, parameters2, connection, transaction);
                    }
                }
            // 3. 配件绑定/解绑 & 日志记录
            if (asnInfo.accessoryList?.Count > 0)
                {
                foreach (var accessory in asnInfo.accessoryList)
                {
                    var snNo = asnInfo.snNo;
@@ -306,19 +310,14 @@
                    if (accessory.bindingState == "0") // 绑定
                    {
                        // 校验
                        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 exists = Convert.ToInt32(
                            sqlHelper.ExecuteScalarWithTransaction(connection,
                                transaction, checkSql, checkParams));
                            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 exists = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, checkSql, checkParams));
                        if (exists > 0)
                            {
                            throw new Exception($"配件SN[{partSn}]已绑定,请先解绑再绑定!");
                            }
                        // 插入绑定
                        var sqlBind = @"
@@ -333,18 +332,13 @@
                        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("createUser",
                                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);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlBind, bindParams, connection, transaction);
                        // 插入日志
@@ -359,8 +353,7 @@
                                   :createUser,
                                   0)";
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlLog,
                            bindParams, connection, transaction);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, bindParams, connection, transaction);
                    }
                    else if (accessory.bindingState == "1") // 解绑
                    {
@@ -372,14 +365,11 @@
                        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);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlUnbind, unbindParams, connection, transaction);
                        // 插入日志
                        var sqlLog = @"
@@ -395,18 +385,14 @@
                        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("Puser",
                                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);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
                        }
                    }
                }
@@ -427,13 +413,14 @@
    }
    /// <summary>
    ///     设置中箱码(绑定/解绑 SN)
    /// </summary>
    public string[] SetMediumBoxCode(MesMiddleBox mesMiddleBox)
    {
        var sqlHelper = new OracleSQLHelper();
        var msg = new string[2];
            string[] msg = new string[2];
        msg[0] = "true";
        var (connection, transaction) = sqlHelper.BeginTransaction();
@@ -445,21 +432,14 @@
                if (mesMiddleBox.SnList.Count > 0)
                {
                    // 检查是否已存在
                    var sqlCheck =
                        "SELECT COUNT(*) FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                    var checkParams = new[]
                    {
                        new OracleParameter(":code", mesMiddleBox.MediumBoxCode)
                    };
                    var count = Convert.ToInt32(
                        sqlHelper.ExecuteScalarWithTransaction(connection,
                            transaction, sqlCheck, checkParams));
                        var sqlCheck = "SELECT COUNT(*) FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                        var checkParams = new[] { new OracleParameter(":code", mesMiddleBox.MediumBoxCode) };
                        var count = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, sqlCheck, checkParams));
                    if (count > 0)
                    {
                        msg[0] = "false";
                        msg[1] =
                            $"该中箱码已经绑定SN数据,如需再次绑定请先解绑!中箱码:{mesMiddleBox.MediumBoxCode}";
                            msg[1] = $"该中箱码已经绑定SN数据,如需再次绑定请先解绑!中箱码:{mesMiddleBox.MediumBoxCode}";
                        transaction.Rollback();
                        return msg;
                    }
@@ -475,17 +455,13 @@
                            :code, :loginId, :snNo, :ticketNo, SYSDATE, :createdBy)";
                        var insertParams = new[]
                        {
                            new OracleParameter(":code",
                                mesMiddleBox.MediumBoxCode),
                            new OracleParameter(":loginId",
                                mesMiddleBox.LoginId),
                        new OracleParameter(":code", mesMiddleBox.MediumBoxCode),
                        new OracleParameter(":loginId", mesMiddleBox.LoginId),
                            new OracleParameter(":snNo", item.SnNo),
                            new OracleParameter(":ticketNo", item.TicketNo),
                            new OracleParameter(":createdBy",
                                mesMiddleBox.LoginId)
                        new OracleParameter(":createdBy", mesMiddleBox.LoginId)
                        };
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlInsert,
                            insertParams, connection, transaction);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlInsert, insertParams, connection, transaction);
                        // 插入日志
                        var sqlLog = @"
@@ -496,17 +472,13 @@
                            :code, :loginId, :snNo, :ticketNo, SYSDATE, :createdBy, 0)";
                        var logParams = new[]
                        {
                            new OracleParameter(":code",
                                mesMiddleBox.MediumBoxCode),
                            new OracleParameter(":loginId",
                                mesMiddleBox.LoginId),
                        new OracleParameter(":code", mesMiddleBox.MediumBoxCode),
                        new OracleParameter(":loginId", mesMiddleBox.LoginId),
                            new OracleParameter(":snNo", item.SnNo),
                            new OracleParameter(":ticketNo", item.TicketNo),
                            new OracleParameter(":createdBy",
                                mesMiddleBox.LoginId)
                        new OracleParameter(":createdBy", mesMiddleBox.LoginId)
                        };
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlLog,
                            logParams, connection, transaction);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
                    }
                }
                else
@@ -517,14 +489,9 @@
            }
            else if (mesMiddleBox.type.ToUpper() == "F") // 解绑
            {
                var sqlSelect =
                    "SELECT * FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                var selectParams = new[]
                {
                    new OracleParameter(":code", mesMiddleBox.MediumBoxCode)
                };
                var dt = sqlHelper.ExecuteDataTable(sqlSelect, CommandType.Text,
                    selectParams);
                    var sqlSelect = "SELECT * FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                    var selectParams = new[] { new OracleParameter(":code", mesMiddleBox.MediumBoxCode) };
                    var dt = sqlHelper.ExecuteDataTable(sqlSelect, CommandType.Text, selectParams);
                foreach (DataRow row in dt.Rows)
                {
@@ -542,18 +509,12 @@
                        new OracleParameter(":ticketNo", row["TICKET_NO"]),
                        new OracleParameter(":createdBy", mesMiddleBox.LoginId)
                    };
                    sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams,
                        connection, transaction);
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
                }
                var sqlDelete =
                    "DELETE FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                var delParams = new[]
                {
                    new OracleParameter(":code", mesMiddleBox.MediumBoxCode)
                };
                sqlHelper.ExecuteNonQueryWithTransaction(sqlDelete, delParams,
                    connection, transaction);
                    var sqlDelete = "DELETE FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = :code";
                    var delParams = new[] { new OracleParameter(":code", mesMiddleBox.MediumBoxCode) };
                    sqlHelper.ExecuteNonQueryWithTransaction(sqlDelete, delParams, connection, transaction);
            }
            else
            {
@@ -584,7 +545,7 @@
    public string[] SetStackCode(MesPalletBinding mesPalletBinding)
    {
        var sqlHelper = new OracleSQLHelper();
        var msg = new string[2];
            string[] msg = new string[2];
        msg[0] = "true";
        var (connection, transaction) = sqlHelper.BeginTransaction();
@@ -595,22 +556,14 @@
            {
                if (mesPalletBinding.SnList.Count > 0)
                {
                    var sqlCheck =
                        "SELECT COUNT(*) FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                    var checkParams = new[]
                    {
                        new OracleParameter(":stackCode",
                            mesPalletBinding.StackCode)
                    };
                    var count = Convert.ToInt32(
                        sqlHelper.ExecuteScalarWithTransaction(connection,
                            transaction, sqlCheck, checkParams));
                        var sqlCheck = "SELECT COUNT(*) FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                        var checkParams = new[] { new OracleParameter(":stackCode", mesPalletBinding.StackCode) };
                        var count = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, sqlCheck, checkParams));
                    if (count > 0)
                    {
                        msg[0] = "false";
                        msg[1] =
                            $"该栈板码已经绑定SN数据,如需再次绑定请先解绑!栈板码:{mesPalletBinding.StackCode}";
                            msg[1] = $"该栈板码已经绑定SN数据,如需再次绑定请先解绑!栈板码:{mesPalletBinding.StackCode}";
                        transaction.Rollback();
                        return msg;
                    }
@@ -625,19 +578,14 @@
                            :stackCode, :loginId, :snNo, :ticketNo, :mediumBoxCode, SYSDATE, :createdBy)";
                        var insertParams = new[]
                        {
                            new OracleParameter(":stackCode",
                                mesPalletBinding.StackCode),
                            new OracleParameter(":loginId",
                                mesPalletBinding.LoginId),
                        new OracleParameter(":stackCode", mesPalletBinding.StackCode),
                        new OracleParameter(":loginId", mesPalletBinding.LoginId),
                            new OracleParameter(":snNo", item.SnNo),
                            new OracleParameter(":ticketNo", item.TicketNo),
                            new OracleParameter(":mediumBoxCode",
                                item.MediumBoxCode),
                            new OracleParameter(":createdBy",
                                mesPalletBinding.LoginId)
                        new OracleParameter(":mediumBoxCode", item.MediumBoxCode),
                        new OracleParameter(":createdBy", mesPalletBinding.LoginId)
                        };
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlInsert,
                            insertParams, connection, transaction);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlInsert, insertParams, connection, transaction);
                        var sqlLog = @"
                        INSERT INTO MES_PALLET_BINDING_LOG (
@@ -645,8 +593,7 @@
                        ) VALUES (
                            MES_PALLET_BINDING_LOG_ID.NEXTVAL,
                            :stackCode, :loginId, :snNo, :ticketNo, :mediumBoxCode, SYSDATE, :createdBy, 0)";
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlLog,
                            insertParams, connection, transaction);
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, insertParams, connection, transaction);
                    }
                }
                else
@@ -657,35 +604,21 @@
            }
            else if (mesPalletBinding.Type.ToUpper() == "F") // 解绑
            {
                var sqlCheck =
                    "SELECT COUNT(*) FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode AND IS_INBOUND = 1";
                var checkParams = new[]
                {
                    new OracleParameter(":stackCode",
                        mesPalletBinding.StackCode)
                };
                var count = Convert.ToInt32(
                    sqlHelper.ExecuteScalarWithTransaction(connection,
                        transaction, sqlCheck, checkParams));
                    var sqlCheck = "SELECT COUNT(*) FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode AND IS_INBOUND = 1";
                    var checkParams = new[] { new OracleParameter(":stackCode", mesPalletBinding.StackCode) };
                    var count = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, sqlCheck, checkParams));
                if (count > 0)
                {
                    msg[0] = "false";
                    msg[1] =
                        $"该栈板码已经在MES入库,不允许解绑!栈板码:{mesPalletBinding.StackCode}";
                        msg[1] = $"该栈板码已经在MES入库,不允许解绑!栈板码:{mesPalletBinding.StackCode}";
                    transaction.Rollback();
                    return msg;
                }
                var sqlSelect =
                    "SELECT * FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                var selectParams = new[]
                {
                    new OracleParameter(":stackCode",
                        mesPalletBinding.StackCode)
                };
                var dt = sqlHelper.ExecuteDataTable(sqlSelect, CommandType.Text,
                    selectParams);
                    var sqlSelect = "SELECT * FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                    var selectParams = new[] { new OracleParameter(":stackCode", mesPalletBinding.StackCode) };
                    var dt = sqlHelper.ExecuteDataTable(sqlSelect, CommandType.Text, selectParams);
                foreach (DataRow row in dt.Rows)
                {
@@ -701,24 +634,15 @@
                        new OracleParameter(":loginId", row["LOGIN_ID"]),
                        new OracleParameter(":snNo", row["SN_NO"]),
                        new OracleParameter(":ticketNo", row["TICKET_NO"]),
                        new OracleParameter(":mediumBoxCode",
                            row["MEDIUMBOXCODE"]),
                        new OracleParameter(":createdBy",
                            mesPalletBinding.LoginId)
                    new OracleParameter(":mediumBoxCode", row["MEDIUMBOXCODE"]),
                    new OracleParameter(":createdBy", mesPalletBinding.LoginId)
                    };
                    sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams,
                        connection, transaction);
                        sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
                }
                var sqlDelete =
                    "DELETE FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                var delParams = new[]
                {
                    new OracleParameter(":stackCode",
                        mesPalletBinding.StackCode)
                };
                sqlHelper.ExecuteNonQueryWithTransaction(sqlDelete, delParams,
                    connection, transaction);
                    var sqlDelete = "DELETE FROM MES_PALLET_BINDING WHERE STACKCODE = :stackCode";
                    var delParams = new[] { new OracleParameter(":stackCode", mesPalletBinding.StackCode) };
                    sqlHelper.ExecuteNonQueryWithTransaction(sqlDelete, delParams, connection, transaction);
            }
            transaction.Commit();
@@ -748,15 +672,16 @@
            throw new ArgumentException("输入参数无效");
        var sqlHelper = new OracleSQLHelper();
        var result = true;
            bool result = true;
        var (connection, transaction) = sqlHelper.BeginTransaction();
        try
        {
            foreach (var sn in dto.snList)
                {
                if (dto.ActionType == 0) // 解绑
                {
                    var sql = @"
                        string sql = @"
                            UPDATE MES_SN_STATUS_DETAILS
                               SET IS_UNBIND   = 1,
                                   UNBIND_DATE = SYSDATE,
@@ -772,15 +697,15 @@
                        new OracleParameter(":SnNo", sn.snNo)
                    };
                    var rows = sqlHelper.ExecuteNonQueryWithTransaction(sql,
                        parameters, connection, transaction);
                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
                    if (rows == 0)
                        throw new Exception(
                            $"解绑失败: 工单[{sn.tickeNo}], SN[{sn.snNo}] 未找到可解绑记录或已解绑!");
                        {
                            throw new Exception($"解绑失败: 工单[{sn.tickeNo}], SN[{sn.snNo}] 未找到可解绑记录或已解绑!");
                        }
                }
                else if (dto.ActionType == 1) // 撤销解绑
                {
                    var sql = @"
                        string sql = @"
                            UPDATE MES_SN_STATUS_DETAILS
                               SET IS_UNBIND   = 0,
                                   UNBIND_DATE = NULL,
@@ -795,15 +720,16 @@
                        new OracleParameter(":SnNo", sn.snNo)
                    };
                    var rows = sqlHelper.ExecuteNonQueryWithTransaction(sql,
                        parameters, connection, transaction);
                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
                    if (rows == 0)
                        throw new Exception(
                            $"撤销解绑失败: 工单[{sn.tickeNo}], SN[{sn.snNo}] 未找到已解绑记录!");
                        {
                            throw new Exception($"撤销解绑失败: 工单[{sn.tickeNo}], SN[{sn.snNo}] 未找到已解绑记录!");
                        }
                }
                else
                {
                    throw new Exception("无效的操作类型!只能是 0=解绑 或 1=撤销解绑");
                    }
                }
            transaction.Commit();
@@ -822,4 +748,6 @@
        return result;
    }
    }
}
StandardPda/MESApplication/Controllers/WomcaaController.cs
@@ -29,6 +29,7 @@
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.PageName = rohIn.ErpCaa.FBillNo;
        entity.Data = JsonConvert.SerializeObject(rohIn);
        entity.Status = 1;
        entity.CreateBy = "PL017";