zjh
4 天以前 a27f32ecbfc7390ceb9e3a8d8651c57ada88bfa0
StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -47,7 +47,15 @@
            //    "                        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 ,PRD.PRD_ID PRDID\r\nfrom  WOMDAA C\r\n         " +
                "left join mes_items s on s.id = C.daa002\r\n" +
                 "left join MES_PRD_ID PRD on PRD.ITEM_NO=s.ITEM_NO /*查询产品id*/\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);
        }
@@ -222,25 +230,40 @@
            try
            {
                // 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,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)
               VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
                       :ticketNo,
                       :snNo,
                       :workstationNo,
                       :snState,
                       :loginId,
                       :turnoverCode)";
                   (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE, LINE_NO)
            SELECT SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
                   :ticketNo,
                   :snNo,
                   :workstationNo,
                   :snState,
                   :loginId,
                   :turnoverCode,
                   NVL(DAA015, '')
              FROM WOMDAA
             WHERE DAA001 = :ticketNo
               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)
        };
                int i = sqlHelper.ExecuteNonQueryWithTransaction(sql1, parameters1, connection, transaction);
@@ -264,11 +287,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 +312,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 +322,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 +351,7 @@
                                   :partSn,
                                   :partName,
                                   SYSDATE,
                                   :user,
                                   :createUser,
                                   0)";
                            sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, bindParams, connection, transaction);
@@ -342,8 +366,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 +381,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 +412,7 @@
            return result;
        }
        /// <summary>
@@ -725,5 +750,32 @@
            return result;
        }
        /// <summary>
        /// 查询栈板码状态
        /// </summary>
        /// <param name="stackCode">栈板码</param>
        /// <returns>0-允许解绑,1-不允许解绑(已入库)</returns>
        public int GetStackCodeState(string stackCode)
        {
            var sqlHelper = new OracleSQLHelper();
            try
            {
                // 查询该栈板码是否已入库 (IS_INBOUND = 1)
                var sql = @"SELECT COUNT(*) FROM MES_PALLET_BINDING
                           WHERE STACKCODE = :stackCode AND IS_INBOUND = 1";
                var parameters = new[] { new OracleParameter(":stackCode", stackCode ?? (object)DBNull.Value) };
                var count = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, parameters));
                // 如果count > 0,说明已入库,返回1(不允许解绑)
                // 否则返回0(允许解绑)
                return count > 0 ? 1 : 0;
            }
            catch (Exception ex)
            {
                throw new Exception($"查询栈板码状态失败: {ex.Message}", ex);
            }
        }
    }
}