Beispiel #1
0
        /// <summary>
        /// Get SalesOrder Via Key
        /// </summary>
        /// <param name="dataset">sale order key</param>
        /// <returns>dataset</returns>
        public DataSet GetSalesOrderByKey(string orderKey)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();

            //define sqlCommand
            String[] sqlCommand = new String[5];
            try
            {
                if (orderKey != string.Empty)
                {
                    sqlCommand[0] = @"SELECT * FROM POR_SALES_ORDER_ITEM_ATTR
                                       WHERE SALES_ORDER_ITEM_KEY IN
                                             (SELECT DISTINCT SALES_ORDER_ITEM_KEY
                                                FROM POR_SALES_ORDER_ITEM
                                               WHERE SALES_ORDER_KEY = '" + orderKey + "') ORDER BY 1";

                    DataTable dtTable1 = new DataTable();
                    Database  db       = DatabaseFactory.CreateDatabase();
                    dtTable1           = db.ExecuteDataSet(CommandType.Text, sqlCommand[0]).Tables[0];
                    dtTable1.TableName = POR_SALES_ORDER_ITEM_ATTR_FIELDS.DATABASE_TABLE_NAME;
                    dataDs.Merge(dtTable1, false, MissingSchemaAction.Add);

                    sqlCommand[1] = @"SELECT * FROM POR_SALES_ORDER_ITEM WHERE SALES_ORDER_KEY = '" + orderKey + "' ORDER BY 1";

                    DataTable dtTable2 = new DataTable();
                    dtTable2           = db.ExecuteDataSet(CommandType.Text, sqlCommand[1]).Tables[0];
                    dtTable2.TableName = POR_SALES_ORDER_ITEM_FIELDS.DATABASE_TABLE_NAME;
                    dataDs.Merge(dtTable2, false, MissingSchemaAction.Add);

                    sqlCommand[2] = "SELECT a.*, b." + BASE_ATTRIBUTE_FIELDS.FIELDS_DATA_TYPE +
                                    " FROM " + POR_SALES_ORDER_ATTR_FIELDS.DATABASE_TABLE_NAME + " a," +
                                    "      " + BASE_ATTRIBUTE_FIELDS.DATABASE_TABLE_NAME + " b" +
                                    " WHERE a." + POR_SALES_ORDER_ATTR_FIELDS.FIELDS_ATTRIBUTE_KEY + " = b." + BASE_ATTRIBUTE_FIELDS.FIELDS_ATTRIBUTE_KEY +
                                    "   AND a." + POR_SALES_ORDER_ATTR_FIELDS.FIELDS_SALES_ORDER_KEY + " = '" + orderKey + "'";
                    //sqlCommand[2] = @"SELECT * FROM POR_SALES_ORDER_ATTR WHERE SALES_ORDER_KEY = '" + orderKey + "' ORDER BY 1";

                    DataTable dtTable3 = new DataTable();
                    dtTable3           = db.ExecuteDataSet(CommandType.Text, sqlCommand[2]).Tables[0];
                    dtTable3.TableName = POR_SALES_ORDER_ATTR_FIELDS.DATABASE_TABLE_NAME;
                    dataDs.Merge(dtTable3, false, MissingSchemaAction.Add);

                    sqlCommand[3] = @"SELECT * FROM POR_SALES_ORDER WHERE SALES_ORDER_KEY = '" + orderKey + "' ORDER BY 1";

                    DataTable dtTable4 = new DataTable();
                    dtTable4           = db.ExecuteDataSet(CommandType.Text, sqlCommand[3]).Tables[0];
                    dtTable4.TableName = POR_SALES_ORDER_FIELDS.DATABASE_TABLE_NAME;
                    dataDs.Merge(dtTable4, false, MissingSchemaAction.Add);

                    //add paramter table
                    SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
                }
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("GetSalesOrderByKey Error: " + ex.Message);
            }
            return(dataDs);
        }
Beispiel #2
0
        /// <summary>
        /// 获取工单报工数据。
        /// </summary>
        /// <param name="dsParams">包含查询条件的数据集对象。</param>
        /// <param name="pageNo">第几页。</param>
        /// <param name="pageSize">每页行数。</param>
        /// <param name="pages">总页数。</param>
        /// <param name="records">总记录数。</param>
        /// <returns>包含工单数据的数据集对象。</returns>
        public DataSet GetWorkOrderWorkFor(DataSet dsParams,
                                           int pageNo, int pageSize, out int pages, out int records)
        {
            DataSet dsReturn = new DataSet();

            pages   = 0;
            records = 0;
            try
            {
                string sqlString = @"SELECT (P.ACK_DATA + ' ' + P.ACK_TIME) AS ACKDATETIME,P.AUFNR,P.APLFL,P.GMNGA,P.XMNGA,
                                        P.REPORTOR,P.SHIFT_NAME,P.CON_END,P.WERKS,L.LOCATION_NAME
                                     FROM POR_WORK_ORDER_REPORT P,FMM_LOCATION L
                                     WHERE L.LOCATION_KEY = P.ROOM_KEY";

                if (pageNo > 0 && pageSize > 0)
                {
                    //查询结果翻页数据
                    AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, dsReturn, POR_WORK_ORDER_REPORT_FIELDS.DATABASE_TABLE_NAME);
                }
                else
                {
                    db.LoadDataSet(CommandType.Text, sqlString, dsReturn, new string[] { POR_WORK_ORDER_REPORT_FIELDS.DATABASE_TABLE_NAME });
                }

                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("GetWorkOrderWorkFor Error: " + ex.Message);
            }

            return(dsReturn);
        }
Beispiel #3
0
        public DataSet DeleteMaterialCode(string _code)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();

            //define sql
            String[] sqlCommand = new String[5];

            try
            {
                if (_code != string.Empty)
                {
                    using (DbConnection dbConn = db.CreateConnection())
                    {
                        //Open Connection
                        dbConn.Open();
                        //Create Transaction
                        DbTransaction dbTran = dbConn.BeginTransaction();
                        try
                        {
                            string sql01 = string.Format("SELECT MAX(MATERIAL_VERSION) FROM POR_MATERIAL WHERE MATERIAL_CODE = '{0}'",
                                                         _code);
                            DataSet ds01            = db.ExecuteDataSet(CommandType.Text, sql01);
                            int     materialVersion = 1;
                            if (ds01.Tables[0].Rows.Count > 0)
                            {
                                materialVersion = Convert.ToInt32(ds01.Tables[0].Rows[0][0].ToString());
                            }
                            sqlCommand[0] = "UPDATE POR_MATERIAL SET STATUS = 0 ,MATERIAL_VERSION = '" + materialVersion + "' WHERE MATERIAL_CODE = '" + _code + "' AND STATUS = 1";

                            db.ExecuteNonQuery(dbTran, CommandType.Text, sqlCommand[0]);

                            //Commit Transaction
                            dbTran.Commit();

                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
                        }
                        catch (Exception ex)
                        {
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                            //Rollback Transaction
                            dbTran.Rollback();
                            LogService.LogError("DeleteMaterialCode Error: " + ex.Message);
                        }
                        finally
                        {
                            //Close Connection
                            dbConn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("DeleteMaterialCode Error: " + ex.Message);
            }

            return(dataDs);
        }
Beispiel #4
0
        /// <summary>
        /// Search SalesOrders
        /// </summary>
        /// <param name="dataset">sale order info</param>
        /// <returns>dataset</returns>
        public DataSet SearchSalesOrders(DataSet dataset)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();

            //define sqlCommand
            String[] sqlCommand = new String[5];
            try
            {
                if (dataset != null && dataset.Tables.Contains(POR_SALES_ORDER_FIELDS.DATABASE_TABLE_NAME))
                {
                    DataTable dataTable = dataset.Tables[POR_SALES_ORDER_FIELDS.DATABASE_TABLE_NAME];
                    Hashtable hashData  = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable);

                    sqlCommand[0] = @"SELECT SALES_ORDER_KEY,
                                   ORDER_NUMBER,
                                   ORDER_STATE,
                                   ORDER_PRIORITY,
                                   ENTERED_TIME,
                                   PROMISED_TIME,
                                   FINISHED_TIME,
                                   SHIPPED_TIME,
                                   CLOSED_TIME,
                                   DESCRIPTIONS
                              FROM POR_SALES_ORDER
                             WHERE ORDER_NUMBER LIKE '%" + hashData["ORDER_NUMBER"] + "%'";

                    if (hashData["ORDER_STATE"] != null)
                    {
                        sqlCommand[0] += "AND ORDER_STATE LIKE '%" + hashData["ORDER_STATE"] + "%'";
                    }

                    if (hashData["ORDER_PRIORITY"] != null)
                    {
                        sqlCommand[0] += "AND ORDER_PRIORITY LIKE '%" + hashData["ORDER_PRIORITY"] + "%'";
                    }

                    sqlCommand[0] += "ORDER BY 1";
                }
                else
                {
                    sqlCommand[0] = "SELECT * FROM POR_SALES_ORDER ORDER BY 1";
                }

                Database  database = DatabaseFactory.CreateDatabase();
                DataTable dtTable  = database.ExecuteDataSet(CommandType.Text, sqlCommand[0]).Tables[0];
                dtTable.TableName = POR_SALES_ORDER_FIELDS.DATABASE_TABLE_NAME;
                dataDs.Merge(dtTable, false, MissingSchemaAction.Add);
                //add paramter table
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("SearchSalesOrders Error: " + ex.Message);
            }
            return(dataDs);
        }
Beispiel #5
0
        /// <summary>
        /// 保存退料单数据。
        /// </summary>
        /// <param name="strRetMatNo">退料单号。</param>
        /// <param name="strRetMatDate">退料单日期。</param>
        /// <param name="strShift">班别名称。</param>
        /// <param name="strOperator">操作人。</param>
        /// <param name="strRetMatReason">退料原因。</param>
        /// <param name="dtMatLotList">包含退料物料数据的数据表对象。</param>
        /// <returns>true:保存成功。false:保存失败。</returns>
        public bool Save(string strRetMatNo, string strRetMatDate, string strShift, string strOperator,
                         string strRetMatReason, DataTable dtMatLotList)
        {
            bool         bltmp = false;
            DbConnection dbCon = db.CreateConnection();

            dbCon.Open();
            DbTransaction dbTrans = dbCon.BeginTransaction();

            try
            {
                //1.表示退料单的数据表 WST_TL_ZMMLKO
                DbCommand dbCom = dbCon.CreateCommand();
                dbCom.CommandText = Save1(strRetMatNo, strRetMatDate, strShift, strOperator, strRetMatReason, dtMatLotList);
                dbCom.Transaction = dbTrans;
                dbCom.ExecuteNonQuery();

                //2.表示退料的详细信息,一批一批记录
                for (int i = 0; i < dtMatLotList.Rows.Count; i++)
                {
                    dbCom.CommandText = Save2(strRetMatNo, strRetMatDate, strShift, strOperator, strRetMatReason, dtMatLotList.Rows[i]);
                    dbCom.ExecuteNonQuery();
                }

                //3.更新数量
                for (int i = 0; i < dtMatLotList.Rows.Count; i++)
                {
                    dbCom.CommandText = Save3(strRetMatNo, strRetMatDate, strShift, strOperator, strRetMatReason, dtMatLotList.Rows[i]);
                    dbCom.ExecuteNonQuery();
                }

                //4.调用RFC
                DataSet dsOut = new DataSet();
                DataSet dsIn  = Save4(strRetMatNo, strRetMatDate, strShift, strOperator, strRetMatReason, dtMatLotList);
                AllCommonFunctions.SAPRemoteFunctionCall("Z_RFC_RET", dsIn, out dsOut);
                if (int.Parse(dsOut.Tables[0].Rows[0]["NUMBER"].ToString()) == 0) //MESSAGE
                {
                    dbTrans.Commit();
                    bltmp = true;
                }
                else
                {
                    dbTrans.Rollback();
                    bltmp = false;
                }
            }
            catch (Exception ex)
            {
                dbTrans.Rollback();
                LogService.LogError("WOMaterialReturnEngine Save Error: " + ex.Message);
            }
            finally
            {
                dbCon.Close();
            }
            return(bltmp);
        }
Beispiel #6
0
        /// <summary>
        /// Add Uda SalesOrderAttr
        /// </summary>
        /// <param name="dataset">dataset for add items cloumns and values</param>
        /// <returns>dataset</returns>
        public DataSet AddUdaSalesOrderAttr(DataSet dataset)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();
            //define sql
            string sql = "";

            try
            {
                if (dataset.Tables.Count > 0)
                {
                    if (dataset.Tables[0].Rows.Count > 0)
                    {
                        sql += "INSERT INTO POR_SALES_ORDER_ATTR(";
                        //repeated check
                        for (int i = 0; i < dataset.Tables[0].Rows.Count; i++)
                        {
                            if (i == 0)
                            {
                                sql += dataset.Tables[0].Rows[i][0].ToString();
                            }
                            else
                            {
                                sql += ", " + dataset.Tables[0].Rows[i][0].ToString();
                            }
                        }
                        sql += ") VALUES (";
                        for (int i = 0; i < dataset.Tables[0].Rows.Count; i++)
                        {
                            if (i == 0)
                            {
                                sql += dataset.Tables[0].Rows[i][1];
                            }
                            else
                            {
                                sql += ", " + dataset.Tables[0].Rows[i][1];
                            }
                        }
                        sql += " )";

                        //excute insert
                        dbEngine.ExecuteNonQuery(sql);
                        SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
                    }
                }
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("AddUdaSalesOrderAttr Error: " + ex.Message);
            }

            return(dataDs);
        }
Beispiel #7
0
        public DataSet DeleteMatSpecialInf(string _workOrderNum, string _mat, string _paramerTeam)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();

            //define sql
            String[] sqlCommand = new String[5];

            try
            {
                if (_workOrderNum != string.Empty && _mat != string.Empty && _paramerTeam != string.Empty)
                {
                    using (DbConnection dbConn = db.CreateConnection())
                    {
                        //Open Connection
                        dbConn.Open();
                        //Create Transaction
                        DbTransaction dbTran = dbConn.BeginTransaction();
                        try
                        {
                            sqlCommand[0] = string.Format(@"UPDATE POR_WORK_ORDER_BOM_EXTENSION SET STATUS = 0 WHERE STATUS = 1 AND ORDER_NUMBER = '{0}' AND MATERIAL_CODE = '{1}' AND MATKL = '{2}'",
                                                          _workOrderNum, _mat, _paramerTeam);

                            db.ExecuteNonQuery(dbTran, CommandType.Text, sqlCommand[0]);

                            //Commit Transaction
                            dbTran.Commit();

                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
                        }
                        catch (Exception ex)
                        {
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                            //Rollback Transaction
                            dbTran.Rollback();
                            LogService.LogError("DeleteMatSpecialInf Error: " + ex.Message);
                        }
                        finally
                        {
                            //Close Connection
                            dbConn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("DeleteMatSpecialInf Error: " + ex.Message);
            }

            return(dataDs);
        }
Beispiel #8
0
        /// <summary>
        /// 搜索工单信息。可以使用工单号(ORDER_NUMBER),工单状态(ORDER_STATE)和工单优先级(ORDER_PRIORITY)作为搜索条件。
        /// </summary>
        /// <param name="dataset">
        /// 包含查询条件的数据集对象。若设置查询条件,数据集中必须包含数据表名为<see cref="POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME"/>的数据表对象,
        /// 数据表对象包含两个列分别为NAME和VALUE。 列NAME存放查询条件名,列VALUE存放查询条件值。
        /// 列NAME可以存放如下查询条件:工单号(ORDER_NUMBER)(可选,模糊查询)、
        /// 工单状态(ORDER_STATE)(可选,模糊查询)、工单优先级(ORDER_PRIORITY)(可选,模糊查询)。
        /// </param>
        /// <returns>查询得到的包含工单信息的数据集对象。该数据集对象包含两个数据表对象。
        /// 一个名称为<see cref="POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME"/>的数据表对象。
        /// 一个名称为paraTable的数据表对象。
        /// POR_WORK_ORDER数据表存放查询得到的工单信息。paraTable的数据表对象存放查询的执行结果,paraTable数据表对象中包含两列“ATTRIBUTE_KEY”和“ATTRIBUTE_VALUE”。最多包含两行:“ATTRIBUTE_KEY”列等于“CODE”的行和“ATTRIBUTE_KEY”列等于“MESSAGE”的行。
        /// </returns>
        public object SearchWorkOrder(DataSet dataSet)
        {
            DataSet returnDS   = AllCommonFunctions.GetDynamicTwoColumnsDataSet();
            string  sqlCommand = "";

            try
            {
                //查询条件数据集不为null,且包含名称为POR_WORK_ORDER的数据表对象。
                if (dataSet != null && dataSet.Tables.Contains(POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME))
                {
                    DataTable dataTable = dataSet.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME];
                    Hashtable hashData  = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable);

                    sqlCommand = @"SELECT WORK_ORDER_KEY,
                                   ORDER_NUMBER,
                                   ORDER_STATE,
                                   ORDER_PRIORITY,
                                   ENTERED_TIME,
                                   PROMISED_TIME
                              FROM POR_WORK_ORDER
                             WHERE ORDER_NUMBER LIKE '%" + hashData["ORDER_NUMBER"] + "%'";
                    //包含工单状态的查询条件
                    if (hashData["ORDER_STATE"] != null)
                    {
                        sqlCommand += "AND ORDER_STATE LIKE '%" + hashData["ORDER_STATE"] + "%'";
                    }
                    //包含工单优先级的查询条件
                    if (hashData["ORDER_PRIORITY"] != null)
                    {
                        sqlCommand += "AND ORDER_PRIORITY LIKE '%" + hashData["ORDER_PRIORITY"] + "%'";
                    }
                }
                else
                {
                    sqlCommand = "SELECT * FROM POR_WORK_ORDER";
                }
                DataTable dtTable = new DataTable();
                db                = DatabaseFactory.CreateDatabase();
                dtTable           = db.ExecuteDataSet(CommandType.Text, sqlCommand).Tables[0];
                dtTable.TableName = POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME;
                //将查询得到的数据合并到数据集中
                returnDS.Merge(dtTable, false, MissingSchemaAction.Add);
                //add paramter table
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(returnDS, "");
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(returnDS, ex.Message);
                LogService.LogError("SearchWorkOrder Error: " + ex.Message);
            }
            //返回数据集
            return(returnDS);
        }
Beispiel #9
0
        public DataSet DeleteSupplierCode(string supplierCode)
        {
            //get dynamic dataset constructor
            DataSet dataDs = AllCommonFunctions.GetDynamicTwoColumnsDataSet();

            //define sql
            String[] sqlCommand = new String[5];

            try
            {
                if (supplierCode != string.Empty)
                {
                    using (DbConnection dbConn = db.CreateConnection())
                    {
                        //Open Connection
                        dbConn.Open();
                        //Create Transaction
                        DbTransaction dbTran = dbConn.BeginTransaction();
                        try
                        {
                            sqlCommand[0] = "DELETE BASE_SUPPLIER WHERE CODE = '" + supplierCode + "'";

                            db.ExecuteNonQuery(dbTran, CommandType.Text, sqlCommand[0]);

                            //Commit Transaction
                            dbTran.Commit();

                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, "");
                        }
                        catch (Exception ex)
                        {
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                            //Rollback Transaction
                            dbTran.Rollback();
                            LogService.LogError("DeleteReasonCode Error: " + ex.Message);
                        }
                        finally
                        {
                            //Close Connection
                            dbConn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dataDs, ex.Message);
                LogService.LogError("DeleteReasonCode Error: " + ex.Message);
            }

            return(dataDs);
        }
Beispiel #10
0
        public DataSet GetByFourParameters(string partId, string partType, string partModule, string partClass, ref PagingQueryConfig pconfig)
        {
            DataSet       dsReturn  = new DataSet();
            StringBuilder sqlCommon = new StringBuilder();

            try
            {
                sqlCommon.Append(@"SELECT PART_ID,PART_DESC,PART_TYPE,PART_MODULE,PART_CLASS,
	                                           (SELECT COUNT(1)
		                                        FROM  POR_PART_BYPRODUCT b
		                                        WHERE b.MAIN_PART_NUMBER=A.PART_ID
		                                        AND b.IS_USED='Y') AS TOTOL
                                        FROM dbo.POR_PART A WHERE 1=1 AND A.PART_STATUS = 1");
                if (!string.IsNullOrEmpty(partId))
                {
                    sqlCommon.AppendFormat(" AND PART_ID LIKE '{0}%'", partId);
                }
                if (!string.IsNullOrEmpty(partType))
                {
                    sqlCommon.AppendFormat(" AND PART_TYPE LIKE '{0}%'", partType);
                }
                if (!string.IsNullOrEmpty(partModule))
                {
                    sqlCommon.AppendFormat(" AND PART_MODULE LIKE '{0}%'", partModule);
                }
                if (!string.IsNullOrEmpty(partClass))
                {
                    sqlCommon.AppendFormat(" AND PART_CLASS LIKE '{0}%'", partClass);
                }
                int pages   = 0;
                int records = 0;
                AllCommonFunctions.CommonPagingData(sqlCommon.ToString(),
                                                    pconfig.PageNo,
                                                    pconfig.PageSize,
                                                    out pages,
                                                    out records,
                                                    db,
                                                    dsReturn,
                                                    "POR_PART",
                                                    "PART_ID ASC");
                pconfig.Pages   = pages;
                pconfig.Records = records;

                ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }
            catch (Exception ex)
            {
                ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("GetByFourParameters Error: " + ex.Message);
            }
            return(dsReturn);
        }
Beispiel #11
0
        /// <summary>
        /// 执行SAP远程函数(RFC)。
        /// </summary>
        /// <param name="functionName">RFC函数名称。</param>
        /// <param name="inputData">>RFC函数输入数据。</param>
        /// <returns>RFC函数返回数据。</returns>
        public DataSet ExecuteRFC(string functionName, DataSet inputData)
        {
            DateTime startTime  = DateTime.Now;
            DataSet  outputData = null;

            try
            {
                AllCommonFunctions.SAPRemoteFunctionCall(functionName, inputData, out outputData);
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(outputData, ex.Message);
                LogService.LogError("Execute RFC Error: " + ex.Message);
            }

            DateTime endTime = DateTime.Now;

            LogService.LogInfo("Cal SAP Function: " + functionName + " Total Time:" + (endTime - startTime).TotalMilliseconds.ToString());
            return(outputData);
        }
Beispiel #12
0
        //删除
        /// <summary>
        /// 获取SAP中的退料单是否删除。
        /// </summary>
        /// <param name="dsIMPORT">包含退料单信息的数据集对象。</param>
        /// <returns>true:退料单在SAP中已删除。false:退料单未删除。</returns>
        public bool DeleteMat(DataSet dsIMPORT)
        {
            bool    bltmp = false;
            DataSet dsOut = new DataSet();

            try
            {
                //调用RFC
                AllCommonFunctions.SAPRemoteFunctionCall("Z_RFC_RET", dsIMPORT, out dsOut);
            }
            catch (Exception ex)
            {
                LogService.LogError("WOMaterialReturnEngine Save Error: " + ex.Message);
            }
            finally
            {
            }

            if (Convert.ToString(dsOut.Tables[0].Rows[0]["LVORM"]) == "D")//判断条件
            {
                bltmp = true;
            }
            return(bltmp);
        }
Beispiel #13
0
        /// <summary>
        /// 入库单查询
        /// </summary>
        /// <param name="ZMBLNR"></param>
        /// <returns></returns>
        public DataSet QueryWarehouseWarrant(DataSet dsParams, ref PagingQueryConfig pconfig)
        {
            DataSet       dsReturn = new DataSet();
            StringBuilder sBuilder = new StringBuilder();

            try
            {
                sBuilder.Append(@"SELECT ZMBLNR, WERKS, STATUS, ZMMTYP, AUFNR, VBELN_OEM, DEPT, 
                                    CDATE, CREATOR, MBLNR, MBLNR1, CAST(ISSYN AS VARCHAR(10)) AS ISSYN, SYNMAN, SYNDATE
                                    FROM AWMS_WH_ENTRY a 
                                    WHERE STATUS = '正常' ");

                if (dsParams != null && dsParams.Tables.Contains(TRANS_TABLES.TABLE_MAIN_DATA))
                {
                    DataTable dtParams = dsParams.Tables[TRANS_TABLES.TABLE_MAIN_DATA];
                    Hashtable htParams = CommonUtils.ConvertToHashtable(dtParams);

                    if (htParams.ContainsKey("ZMBLNR"))
                    {
                        string ZMBLNR = Convert.ToString(htParams["ZMBLNR"]);
                        sBuilder.AppendFormat(" AND ZMBLNR LIKE '{0}%'", ZMBLNR.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey("AUFNR"))
                    {
                        string AUFNR = Convert.ToString(htParams["AUFNR"]);
                        sBuilder.AppendFormat(" AND AUFNR LIKE '{0}%'", AUFNR.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey("MATNR"))
                    {
                        string MATNR = Convert.ToString(htParams["MATNR"]);
                        sBuilder.AppendFormat(" AND EXISTS (SELECT ZMBLNR FROM AWMS_WH_ENTRY_DETAIL b WHERE a.ZMBLNR = b.ZMBLNR AND MATNR LIKE '{0}%')",
                                              MATNR.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey("CREATOR"))
                    {
                        string CREATOR = Convert.ToString(htParams["CREATOR"]);
                        sBuilder.AppendFormat(" AND CREATOR LIKE '{0}%'", CREATOR.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey("BDATE"))
                    {
                        string BDATE = Convert.ToString(htParams["BDATE"]);
                        sBuilder.AppendFormat(" AND CDATE >= '{0}'", BDATE.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey("EDATE"))
                    {
                        string EDATE = Convert.ToString(htParams["EDATE"]);
                        sBuilder.AppendFormat(" AND CDATE <= '{0}'", EDATE.PreventSQLInjection());
                    }
                }

                int pages   = 0;
                int records = 0;
                AllCommonFunctions.CommonPagingData(sBuilder.ToString(),
                                                    pconfig.PageNo,
                                                    pconfig.PageSize,
                                                    out pages,
                                                    out records,
                                                    db,
                                                    dsReturn,
                                                    POR_LOT_FIELDS.DATABASE_TABLE_NAME,
                                                    "ZMBLNR ASC");
                pconfig.Pages   = pages;
                pconfig.Records = records;
                if (records == 0)
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "订单信息不存在!");
                }
                else
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, String.Empty);
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("WarehouseWarrant Query Error: " + ex.Message);
            }
            return(dsReturn);
        }
Beispiel #14
0
        /// <summary>
        /// 新增设备状态。
        /// </summary>
        /// <param name="dsParams">包含设备状态的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet InsertEquipmentStates(DataSet dsParams)
        {
            DataSet dsReturn = new DataSet();

            try
            {
                if (dsParams != null &&
                    dsParams.Tables.Contains(EMS_EQUIPMENT_STATES_FIELDS.DATABASE_TABLE_NAME) &&
                    dsParams.Tables.Contains(PARAMETERS_INPUT.DATABASE_TABLE_NAME))
                {//判定数据集是否存在表EMS_EQUIPMENT_STATES,INPUT_PARAM_TABLE
                    DataTable equipmentStateDataTable = dsParams.Tables[EMS_EQUIPMENT_STATES_FIELDS.DATABASE_TABLE_NAME];
                    DataTable inputParamDataTable     = dsParams.Tables[PARAMETERS_INPUT.DATABASE_TABLE_NAME];

                    EMS_EQUIPMENT_STATES_FIELDS equipmentStatesFields = new EMS_EQUIPMENT_STATES_FIELDS();

                    List <string> sqlStringList = DatabaseTable.BuildInsertSqlStatements(equipmentStatesFields, equipmentStateDataTable);

                    string equipmentStateKey  = string.Empty;
                    string equipmentStateName = string.Empty;
                    string sqlString          = string.Empty;
                    string createTime         = string.Empty;

                    if (sqlStringList.Count > 0 && inputParamDataTable.Rows.Count > 0 && equipmentStateDataTable.Rows.Count > 0)
                    {
                        equipmentStateKey  = Convert.ToString(inputParamDataTable.Rows[0][PARAMETERS_INPUT.FIELD_KEY]);
                        equipmentStateName = Convert.ToString(equipmentStateDataTable.Rows[0][EMS_EQUIPMENT_STATES_FIELDS.FIELD_EQUIPMENT_STATE_NAME]);
                        sqlString          = sqlStringList[0];
                    }

                    using (DbConnection dbConn = db.CreateConnection())
                    {
                        dbConn.Open();

                        using (DbTransaction dbTrans = dbConn.BeginTransaction())
                        {
                            try
                            {
                                #region 检查设备状态名称。
                                string returnData = AllCommonFunctions.GetSpecifyTableColumnData(equipmentStatesFields,
                                                                                                 EMS_EQUIPMENT_STATES_FIELDS.FIELD_EQUIPMENT_STATE_NAME,
                                                                                                 EMS_EQUIPMENT_STATES_FIELDS.FIELD_EQUIPMENT_STATE_NAME,
                                                                                                 equipmentStateName,
                                                                                                 dbTrans);
                                if (!string.IsNullOrEmpty(returnData))
                                {
                                    throw new Exception("${res:FanHai.Hemera.Modules.EMS.EquipmentStates.M0001}");
                                }
                                #endregion

                                if (db.ExecuteNonQuery(dbTrans, CommandType.Text, sqlString) > 0)
                                {
                                    createTime = AllCommonFunctions.GetSpecifyTableColumnData(equipmentStatesFields,
                                                                                              EMS_EQUIPMENT_STATES_FIELDS.FIELD_CREATE_TIME,
                                                                                              EMS_EQUIPMENT_STATES_FIELDS.FIELD_EQUIPMENT_STATE_KEY,
                                                                                              equipmentStateKey,
                                                                                              dbTrans);
                                }
                                else
                                {
                                    throw new Exception("${res:FanHai.Hemera.Module.Common.M0002}");
                                }

                                dbTrans.Commit();
                            }
                            catch (Exception ex)
                            {
                                LogService.LogError("InsertEquipmentStates Error: " + ex.Message);
                                dbTrans.Rollback();
                                throw;
                            }
                            finally
                            {
                                dbConn.Close();
                            }
                        }
                    }
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty, createTime);
                }
                else
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "${res:FanHai.Hemera.Module.Common.M0001}");
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("InsertEquipmentStates Error: " + ex.Message);
            }

            return(dsReturn);
        }
Beispiel #15
0
        public DataSet GetSchedulePM(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            int pages   = 0;
            int records = 0;

            if (reqDS != null &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGENO) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGESIZE))
            {
                string equipmentKey = reqDS.ExtendedProperties.ContainsKey(EMS_PM_SCHEDULE_FIELDS.FIELD_EQUIPMENT_KEY) ? reqDS.ExtendedProperties[EMS_PM_SCHEDULE_FIELDS.FIELD_EQUIPMENT_KEY].ToString() : string.Empty;

                int pageNo   = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGENO]);
                int pageSize = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGESIZE]);

                try
                {
                    string sqlString = @"SELECT PS.*,
                                               U.USERNAME AS NOTIFY_USER_NAME,
                                               UC.USERNAME AS NOTIFY_CC_USER_NAME,
                                               ECS.EQUIPMENT_CHANGE_STATE_NAME,
                                               ECR.EQUIPMENT_CHANGE_REASON_NAME,
                                               E.EQUIPMENT_NAME,
                                               C.CHECKLIST_NAME
                                          FROM EMS_PM_SCHEDULE              PS,
                                               EMS_CHECKLIST                C,
                                               EMS_EQUIPMENTS               E,
                                               RBAC_USER                    U,
                                               RBAC_USER                    UC,
                                               EMS_EQUIPMENT_CHANGE_REASONS ECR,
                                               EMS_EQUIPMENT_CHANGE_STATES  ECS
                                         WHERE PS.CHECKLIST_KEY = C.CHECKLIST_KEY
                                           AND PS.EQUIPMENT_KEY = E.EQUIPMENT_KEY
                                           AND PS.NOTIFY_USER_KEY = U.USER_KEY
                                           AND PS.NOTIFY_CC_USER_KEY = UC.USER_KEY(+)
                                           AND PS.EQUIPMENT_CHANGE_REASON_KEY = ECR.EQUIPMENT_CHANGE_REASON_KEY(+)
                                           AND PS.EQUIPMENT_CHANGE_STATE_KEY = ECS.EQUIPMENT_CHANGE_STATE_KEY(+)";

                    if (!string.IsNullOrEmpty(equipmentKey))
                    {
                        sqlString += string.Format(" AND E.EQUIPMENT_KEY = '{0}'", equipmentKey);
                    }

                    if (pageNo > 0 && pageSize > 0)
                    {
                        AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, resDS, EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME);
                    }
                    else
                    {
                        db.LoadDataSet(CommandType.Text, sqlString, resDS, new string[] { EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME });
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_PAGES, pages);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_RECORDS, records);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("GetSchedulePM Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #16
0
        public DataSet UpdateSchedulePM(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.Tables.Contains(EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                DataTable schedulePMDataTable = reqDS.Tables[EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME];

                string scheduleKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor      = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime    = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_PM_SCHEDULE_FIELDS schedulePMFields = new EMS_PM_SCHEDULE_FIELDS();

                    #region Build Update SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(scheduleKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, scheduleKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildUpdateSqlStatements(schedulePMFields, schedulePMDataTable, conditionsList);

                    if (sqlStringList.Count > 0 && schedulePMDataTable.Rows.Count > 0)
                    {
                        string scheduleName  = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME].ToString();
                        string frequence     = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE].ToString();
                        string frequenceUnit = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE_UNIT].ToString();
                        string nextEventTime = string.Empty;
                        string sqlString     = sqlStringList[0];

                        using (DbConnection connection = db.CreateConnection())
                        {
                            connection.Open();

                            using (DbTransaction transaction = connection.BeginTransaction())
                            {
                                try
                                {
                                    #region Validate Schedule PM Name

                                    if (!string.IsNullOrEmpty(scheduleName))
                                    {
                                        conditions = new Conditions();

                                        conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME, GlobalEnums.DatabaseCompareOperator.Equal, scheduleName);

                                        conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, GlobalEnums.DatabaseCompareOperator.NotEqual, scheduleKey);

                                        string returnData = AllCommonFunctions.GetSpecifyTableColumnData(schedulePMFields, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME, conditions, transaction);

                                        if (!string.IsNullOrEmpty(returnData))
                                        {
                                            throw new Exception("计划PM名称已存在!");
                                        }
                                    }

                                    #endregion

                                    #region Update Schedule PM Data

                                    if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                    {
                                        if (string.IsNullOrEmpty(frequence) && string.IsNullOrEmpty(frequenceUnit))
                                        {
                                            editTime = AllCommonFunctions.GetSpecifyTableColumnData(schedulePMFields, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, scheduleKey, transaction);
                                        }
                                        else
                                        {
                                            #region Calculate Schedule PM Next Event Time

                                            sqlString = string.Format(@"UPDATE EMS_PM_SCHEDULE
                                                                       SET NEXT_EVENT_TIME = CASE FREQUENCE_UNIT WHEN '小时' THEN SYSDATE + FREQUENCE * INTERVAL '1' HOUR WHEN '天' THEN SYSDATE + FREQUENCE * INTERVAL '1' DAY WHEN '周' THEN SYSDATE + FREQUENCE * INTERVAL '7' DAY WHEN '月' THEN SYSDATE + FREQUENCE * INTERVAL '1' MONTH WHEN '年' THEN SYSDATE + FREQUENCE * INTERVAL '1' YEAR ELSE SYSDATE + FREQUENCE * INTERVAL '1' HOUR END
                                                                     WHERE SCHEDULE_KEY = '{0}'", scheduleKey);

                                            if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                            {
                                                #region Get Next Event Time And Edit Time

                                                List <string> interestFields = new List <string>();

                                                interestFields.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME);
                                                interestFields.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME);

                                                conditions = new Conditions();

                                                conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, GlobalEnums.DatabaseCompareOperator.Equal, scheduleKey);

                                                sqlString = DatabaseTable.BuildQuerySqlStatement(schedulePMFields, interestFields, conditions);

                                                using (IDataReader dataReader = db.ExecuteReader(transaction, CommandType.Text, sqlString))
                                                {
                                                    if (dataReader.Read())
                                                    {
                                                        nextEventTime = dataReader.GetDateTime(0).ToString();
                                                        editTime      = dataReader.GetDateTime(1).ToString();
                                                    }

                                                    dataReader.Close();
                                                }

                                                #endregion
                                            }
                                            else
                                            {
                                                throw new Exception("计算下次PM时间出错!");
                                            }

                                            #endregion
                                        }
                                    }
                                    else
                                    {
                                        throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                    }

                                    #endregion

                                    transaction.Commit();
                                }
                                catch
                                {
                                    transaction.Rollback();

                                    throw;
                                }
                                finally
                                {
                                    connection.Close();
                                }
                            }
                        }

                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                        resDS.ExtendedProperties.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME, nextEventTime);
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, editTime);
                    }
                    else
                    {
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
                    }
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("UpdateSchedulePM Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #17
0
        private DataSet Query(DataSet dsParams, ref PagingQueryConfig pConfig, bool ispaging)
        {
            DataSet       dsReturn = new DataSet();
            StringBuilder sBuilder = new StringBuilder();

            try
            {
                ////出库校验
                //if (status == "CKJY")
                //{
                sBuilder.Append(@"select OUTBANDNO,VBELN,POSNR,CPBH,XHGG,OBDQTY,QC_RESULT,BATCHNO,STATUS,QC_PERSON, 
                                             case PKG_MAT when 0 then '合格' when 1 then '不合格' else ''end as PKG_MAT,
                                             case BILL_BRND  when 0 then '合格' when 1 then '不合格'else '' end as BILL_BRND ,
                                             case CANTR  when 0 then '合格' when 1 then '不合格' else '' end as CANTR ,
                                             case F_OUTB_CUSTM  when 0 then '合格' when 1 then '不合格'else '' end as F_OUTB_CUSTM ,
                                             case EL  when 0 then '合格' when 1 then '不合格'else '' end as EL ,  
                                             case DATA_FORMT when 0 then '合格' when 1 then '不合格'else '' end as DATA_FORMT,
                                             case LIST_ABSENCE  when 0 then '合格' when 1 then '不合格'else '' end as LIST_ABSENCE ,
                                             case LiST_ERR  when 0 then '合格' when 1 then '不合格'else '' end as LiST_ERR ,
                                             case CELL  when 0 then '合格' when 1 then '不合格'else '' end as CELL ,
                                             case MOD_ERR  when 0 then '合格' when 1 then '不合格'else '' end as MOD_ERR , 
                                             case QLVL_ERR when 0 then '合格' when 1 then '不合格'else '' end as QLVL_ERR,
                                             case FRAME  when 0 then '合格' when 1 then '不合格'else '' end as FRAME ,
                                             case BRND_PARM_ERR  when 0 then '合格' when 1 then '不合格'else '' end as BRND_PARM_ERR ,
                                             case CONT_LOCK_BRK  when 0 then '合格' when 1 then '不合格'else '' end as CONT_LOCK_BRK ,
                                             case CUSTM_CK  when 0 then '合格' when 1 then '不合格'else '' end as CUSTM_CK       
                                       from (select OUTBANDNO,a.VBELN,a.POSNR,CPBH,XHGG,OBDQTY,a.QC_RESULT,a.BATCHNO,a.STATUS,a.QC_PERSON, 
                                                    PKG_MAT,BILL_BRND ,CANTR ,F_OUTB_CUSTM ,EL ,DATA_FORMT, LIST_ABSENCE , LiST_ERR , CELL ,
                                                    MOD_ERR ,QLVL_ERR,FRAME ,BRND_PARM_ERR ,CONT_LOCK_BRK ,CUSTM_CK                                    
                                               from AWMS_OUTB_ITEM a left join AWMS_OUTB_QC b on a.VBELN=b.VBELN and a.POSNR=b.POSNR
                                              where a.STATUS in('已确认') and b.STATUS is null
                                       union select distinct OUTBANDNO,a.VBELN,a.POSNR,CPBH,XHGG,OBDQTY,a.QC_RESULT,a.BATCHNO,a.STATUS,a.QC_PERSON, 
                                                    PKG_MAT=2,BILL_BRND=2 ,CANTR=2 ,F_OUTB_CUSTM= 2,EL=2 ,DATA_FORMT=2, 
                                                    LIST_ABSENCE=2 ,LiST_ERR=2 , CELL=2 ,MOD_ERR=2 , QLVL_ERR=2,FRAME=2 ,
                                                    BRND_PARM_ERR=2 ,CONT_LOCK_BRK=2 ,CUSTM_CK=2                                    
                                               from AWMS_OUTB_ITEM a left join AWMS_OUTB_QC b on a.VBELN=b.VBELN and a.POSNR=b.POSNR
                                              where a.STATUS in('已确认') and b.STATUS ='删除'      
                                       union select OUTBANDNO,a.VBELN,a.POSNR,CPBH,XHGG,OBDQTY,a.QC_RESULT,a.BATCHNO,a.STATUS,a.QC_PERSON, 
                                                    PKG_MAT,BILL_BRND ,CANTR ,F_OUTB_CUSTM ,EL ,DATA_FORMT, LIST_ABSENCE , LiST_ERR , CELL ,
                                                    MOD_ERR ,QLVL_ERR,FRAME ,BRND_PARM_ERR ,CONT_LOCK_BRK ,CUSTM_CK                                    
                                               from AWMS_OUTB_ITEM a left join AWMS_OUTB_QC b on a.VBELN=b.VBELN and a.POSNR=b.POSNR
                                              where a.STATUS in('已过账','已检验') and b.STATUS='正常') a  where 1=1
                                ");
                //}
//                //出库管理
//                else if (status == "CKGL")
//                {
//                    sBuilder.Append(@"select a.OUTBANDNO,a.VBELN,a.POSNR,a.status,CPBH,XHGG,QCQTY,OBDQTY,QC_RESULT,BATCHNO,
//                                             c.PALLET_NO from AWMS_OUTB_ITEM a,AWMS_CONTAINER_DETAIL b ,[dbo].WIP_CONSIGNMENT c
//                                       where a.Cabinet_NO=b.CONTAINER_CODE and a.Cabinet_KEY=b.CONTAINER_KEY and a.CPBH=c.SAP_NO
//                                             and b.PALLET_NO=c.PALLET_NO and a.STATUS in('已确认','已过账','已检验')
//                                    ");
//                }

                if (dsParams != null && dsParams.Tables.Contains(TRANS_TABLES.TABLE_MAIN_DATA))
                {
                    DataTable dtParam = dsParams.Tables[TRANS_TABLES.TABLE_MAIN_DATA];
                    Hashtable hsParam = CommonUtils.ConvertToHashtable(dtParam);
                    if (hsParam.ContainsKey(AWMS_OUTB_ITEM_FIELDS.Field_VBELN))
                    {
                        string vbelnNo = Convert.ToString(hsParam[AWMS_OUTB_ITEM_FIELDS.Field_VBELN]);
                        sBuilder.AppendFormat(" and a.VBELN like '{0}%'", vbelnNo.PreventSQLInjection());
                    }
                    if (hsParam.ContainsKey(AWMS_OUTB_ITEM_FIELDS.Field_OUTBANDNO))
                    {
                        string outboundNo = Convert.ToString(hsParam[AWMS_OUTB_ITEM_FIELDS.Field_OUTBANDNO]);
                        sBuilder.AppendFormat(" and a.OUTBANDNO like '{0}%'", outboundNo.PreventSQLInjection());
                    }
                    if (hsParam.ContainsKey(AWMS_CONTAINER_DETAIL_FIELDS.Field_PALLET_NO))
                    {
                        string outboundNo = Convert.ToString(hsParam[AWMS_CONTAINER_DETAIL_FIELDS.Field_PALLET_NO]);
                        sBuilder.AppendFormat(" and c.PALLET_NO like '{0}%'", outboundNo.PreventSQLInjection());
                    }
                }
                int pages   = 0;
                int records = 0;
                AllCommonFunctions.CommonPagingData(sBuilder.ToString(),
                                                    pConfig.PageNo,
                                                    pConfig.PageSize,
                                                    out pages,
                                                    out records,
                                                    db,
                                                    dsReturn,
                                                    POR_LOT_FIELDS.DATABASE_TABLE_NAME,
                                                    "");
                pConfig.Pages   = pages;
                pConfig.Records = records;

                ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }

            catch (Exception ex)
            {
                ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("OutboundOperationEngine Query Error:" + ex.Message);
            }
            finally
            { }
            return(dsReturn);
        }
Beispiel #18
0
        /// <summary>
        /// 查询在线物料。
        /// </summary>
        /// <param name="model">查询条件。</param>
        /// <param name="pconfig">分页对象。</param>
        /// <returns>包含在线物料信息的数据集对象。</returns>
        public DataSet Query(OnlineMaterialQueryModel model, ref PagingQueryConfig pconfig)
        {
            DataSet       dsReturn = new DataSet();
            StringBuilder sbSql    = new StringBuilder();

            try
            {
                sbSql.Append(@"SELECT A.STORE_MATERIAL_KEY ,
                                  SUM(A.CURRENT_QTY)AS QTY,
                                  C.STORE_NAME AS STORE_NAME,
                                  D.MATERIAL_CODE AS  MATERIAL_CODE,
                                  D.MATERIAL_NAME AS  MATERIAL_NAME,
                                  D.UNIT AS  UNIT, 
                                  E.LOCATION_NAME AS ROOM_NAME,
                                  C.OPERATION_NAME AS  OPERATION_NAME  
                            FROM WST_STORE_MATERIAL_DETAIL A 
                            LEFT JOIN WST_STORE_MATERIAL B ON A.STORE_MATERIAL_KEY=B.STORE_MATERIAL_KEY
                            LEFT JOIN WST_STORE C ON B.STORE_KEY=C.STORE_KEY
                            LEFT JOIN POR_MATERIAL D ON B.MATERIAL_KEY=D.MATERIAL_KEY
                            LEFT JOIN FMM_LOCATION E ON C.LOCATION_KEY=E.LOCATION_KEY
                            WHERE CURRENT_QTY>0 ");
                if (!string.IsNullOrEmpty(model.OperationName))
                {
                    sbSql.AppendFormat(UtilHelper.BuilderWhereConditionString("C.OPERATION_NAME", model.OperationName.Split(',')));
                }

                if (!string.IsNullOrEmpty(model.StoreName))
                {
                    sbSql.AppendFormat(UtilHelper.BuilderWhereConditionString("C.STORE_NAME", model.StoreName.Split(',')));
                }

                if (!string.IsNullOrEmpty(model.MaterialCode))
                {
                    sbSql.AppendFormat(" AND D.MATERIAL_CODE  LIKE '{0}%'", model.MaterialCode.PreventSQLInjection());
                }
                if (!string.IsNullOrEmpty(model.MaterialLot))
                {
                    sbSql.AppendFormat(" AND A.MATERIAL_LOT  LIKE '{0}%'", model.MaterialLot.PreventSQLInjection());
                }
                if (!string.IsNullOrEmpty(model.RoomName))
                {
                    sbSql.AppendFormat(" AND E.LOCATION_NAME  LIKE '{0}%'", model.RoomName.PreventSQLInjection());
                }
                if (!string.IsNullOrEmpty(model.SupplierName))
                {
                    sbSql.AppendFormat(" AND A.MATERIAL_SUPPLIER  LIKE '{0}%'", model.SupplierName.PreventSQLInjection());
                }

                sbSql.Append(@" GROUP BY A.STORE_MATERIAL_KEY,C.STORE_NAME,D.MATERIAL_CODE,E.LOCATION_NAME,
                               D.MATERIAL_NAME,D.UNIT, E.LOCATION_NAME,C.OPERATION_NAME ");
                int pages   = 0;
                int records = 0;
                AllCommonFunctions.CommonPagingData(sbSql.ToString(),
                                                    pconfig.PageNo,
                                                    pconfig.PageSize,
                                                    out pages,
                                                    out records,
                                                    db,
                                                    dsReturn,
                                                    "WST_STORE_MATERIAL",
                                                    "MATERIAL_CODE ASC");
                pconfig.Pages   = pages;
                pconfig.Records = records;
                ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }
            catch (Exception ex)
            {
                ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("SearchLotList Error: " + ex.Message);
            }
            return(dsReturn);
        }
Beispiel #19
0
        /// <summary>
        /// 工单报工。
        /// 1.UPDATE WIP_TRANSACTION
        /// 2.UPDATE POR_QC_DATA
        /// 3.UPDATE WST_RK_ZXBPO
        /// 4.获取工单的报废数量
        /// 5.获取工单的合格品数量
        /// 6.INSERT POR_WORK_ORDER_REPORT
        /// 7.UPDATE WIP_TRANSACTION
        /// 8.UPDATE POR_QC_DATA
        /// 9.UPDATE WST_RK_ZXBPO
        /// 10.调用SAP RFC
        /// </summary>
        /// <param name="tableParam">
        /// 传入参数的值:AUFNR 工单号 ROOM_KEY 工厂主键 CREATOR 创建者 CREATE_TIMEZONE 创建时间 REPORTOR 报工人 SHIFT_NAME 班次
        /// </param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet GongDanBaoGong(DataTable tableParam)
        {
            const string CONST_UPDATE_WIP_TRANSACTION_1 = @"UPDATE t		
                                                            SET    t.REPORT_FLAG='R'	
                                                            FROM   WIP_TRANSACTION t		
                                                            WHERE  EXISTS(SELECT a.TRANSACTION_KEY			
                                                                          FROM WIP_TRANSACTION a                    
                                                                          INNER JOIN POR_WORK_ORDER c ON a.WORK_ORDER_KEY=c.WORK_ORDER_KEY                      
                                                                          WHERE a.ACTIVITY='SETLOSS'            
                                                                          AND a.UNDO_FLAG=0             
                                                                          AND a.REPORT_FLAG='N'			
                                                                          AND c.ORDER_NUMBER='{0}'			
                                                                          AND a.TRANSACTION_KEY=t.TRANSACTION_KEY)";

            const string CONST_UPDATE_POR_QC_DATA_2 = @"UPDATE POR_QC_DATA		
                                                        SET  REPORT_FLAG='R'		
                                                        WHERE STATUS=1 AND REPORT_FLAG='N'      
                                                        AND ORDER_NUMBER='{0}'";

            const string CONST_UPDATE_WST_RK_ZXBPO_3 = @"UPDATE t			
                                                        SET t.REPORT_FLAG='R'	
                                                        FROM  WST_RK_ZXBPO t			
                                                        WHERE t.AUFNR='{0}'             
                                                            AND EXISTS (SELECT a.ZXBNO			
                                                                        FROM WST_RK_ZXBPO a			
                                                                        INNER JOIN WST_RK_ZXBKO b ON a.ZXBNO=b.ZXBNO			
                                                                        WHERE b.LVORM=0  AND b.STATE=2 AND a.REPORT_FLAG='N'			
                                                                        AND a.ZXBNO=t.ZXBNO AND a.BARCODE=t.BARCODE AND a.AUFNR='{0}')";

            const string CONST_SELECT_1 = @"SELECT SUM(quantity_out) SCRAP_QTY,c.ORDER_NUMBER                               
                                            FROM WIP_TRANSACTION a                              
                                            INNER JOIN POR_LOT b ON a.PIECE_KEY=b.LOT_KEY AND a.PIECE_TYPE=0                                
                                            INNER JOIN POR_WORK_ORDER c ON b.WORK_ORDER_KEY=c.WORK_ORDER_KEY                                
                                            WHERE a.ACTIVITY='SETLOSS' AND a.UNDO_FLAG=0 AND a.REPORT_FLAG='R' AND c.ORDER_NUMBER='{0}'                         
                                            GROUP BY c.ORDER_NUMBER                         
                                            UNION					
                                            SELECT SUM(SCRAPPED_QTY),ORDER_NUMBER					
                                            FROM POR_QC_DATA					
                                            WHERE STATUS=1 AND REPORT_FLAG='R' AND ORDER_NUMBER='{0}'                       
                                            GROUP BY ORDER_NUMBER";

            const string CONST_SELECT_2 = @"SELECT SUM(MENGE) OK_QTY,a.AUFNR					
                                            FROM WST_RK_ZXBPO a					
                                            INNER JOIN WST_RK_ZXBKO b ON a.ZXBNO=b.ZXBNO					
                                            WHERE b.LVORM=0  AND b.STATE=2 AND a.REPORT_FLAG='R' AND b.ORDER_NUMBER='{0}'   
                                            GROUP BY a.AUFNR";

            const string CONST_INSERT_POR_WORK_ORDER_REPORT_1 = @"INSERT INTO POR_WORK_ORDER_REPORT
                                                                    (ROW_KEY,ACK_DATA,ACK_TIME,AUFNR,APLFL,GMNGA,GMEIN,XMNGA,RMZHL,TYPE,START_TIME_STAMP
                                                                    ,TIME_STAMP,ROOM_KEY,WERKS,CON_END,CREATE_TIME,CREATOR,CREATE_TIMEZONE,REPORTOR,SHIFT_NAME)
                                                                    VALUES('{0}',CONVERT(varchar(10), GETDATE(),126),CONVERT(varchar(10), GETDATE(),108),'{1}','0060',
                                                                    {2},'PC',{3},'0','0','',CAST('{4}' AS Datetime),'{5}','HZ01','N',GETDATE(),'{6}','{7}','{8}','{9}')";

            const string CONST_UPDATE_POR_WORK_WIP_TRANSACTION_4 = @"UPDATE t
                                                                    SET t.REPORT_FLAG='Y'	
                                                                    FROM WIP_TRANSACTION t
                                                                    WHERE EXISTS(SELECT a.TRANSACTION_KEY				
                                                                                  FROM WIP_TRANSACTION a                        
                                                                                  INNER JOIN POR_WORK_ORDER c ON a.WORK_ORDER_KEY=c.WORK_ORDER_KEY                          
                                                                                  WHERE a.ACTIVITY='SETLOSS'                
                                                                                  AND a.UNDO_FLAG=0                 
                                                                                  AND a.REPORT_FLAG='R'				
                                                                                  AND c.ORDER_NUMBER='{0}'				
                                                                                  AND a.TRANSACTION_KEY=t.TRANSACTION_KEY)";

            const string CONST_UPDATE_POR_QC_DATA_5 = @"UPDATE POR_QC_DATA		
                                                        SET  REPORT_FLAG='Y'		
                                                        WHERE STATUS=1 AND REPORT_FLAG='R'      
                                                        AND ORDER_NUMBER='{0}'";

            const string CONST_UPDATE_WST_RK_ZXBPO_6 = @"UPDATE t   
                                                        SET t.REPORT_FLAG='Y'
                                                        FROM WST_RK_ZXBPO t		
                                                        WHERE t.AUFNR='{0}'             
                                                        AND EXISTS (SELECT a.ZXBNO			
                                                                    FROM WST_RK_ZXBPO a			
                                                                    INNER JOIN WST_RK_ZXBKO b ON a.ZXBNO=b.ZXBNO			
                                                                    WHERE b.LVORM=0  AND b.STATE=2 AND a.REPORT_FLAG='R'			
                                                                    AND a.ZXBNO=t.ZXBNO AND a.BARCODE=t.BARCODE AND a.AUFNR='{0}')";

            DataSet dsReturn = new DataSet();

            DataTable dtHash  = tableParam;
            Hashtable hsTable = FanHai.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dtHash);

            DbConnection dbCon = db.CreateConnection();

            dbCon.Open();
            DbTransaction dbTrans = dbCon.BeginTransaction();

            try
            {
                string sqlUpdate1 = "";
                string sqlUpdate2 = "";
                string sqlUpdate3 = "";
                string sqlSelect1 = "";
                string sqlSelect2 = "";
                string sqlInsert1 = "";
                string sqlUpdate4 = "";
                string sqlUpdate5 = "";
                string sqlUpdate6 = "";

                DbCommand dbCom = dbCon.CreateCommand();
                dbCom.Transaction = dbTrans;
                string orderNumber = Convert.ToString(hsTable["AUFNR"]).PreventSQLInjection();
                sqlUpdate1        = string.Format(CONST_UPDATE_WIP_TRANSACTION_1, orderNumber);
                dbCom.CommandText = sqlUpdate1;
                int i = dbCom.ExecuteNonQuery();

                sqlUpdate2        = string.Format(CONST_UPDATE_POR_QC_DATA_2, orderNumber);
                dbCom.CommandText = sqlUpdate2;
                int j = dbCom.ExecuteNonQuery();

                sqlUpdate3        = string.Format(CONST_UPDATE_WST_RK_ZXBPO_3, orderNumber);
                dbCom.CommandText = sqlUpdate3;
                int k = dbCom.ExecuteNonQuery();

                sqlSelect1 = string.Format(CONST_SELECT_1, orderNumber);
                DataSet dsBaoFei = db.ExecuteDataSet(dbTrans, CommandType.Text, sqlSelect1);

                sqlSelect2 = string.Format(CONST_SELECT_2, orderNumber);
                DataSet dsHeGe = db.ExecuteDataSet(dbTrans, CommandType.Text, sqlSelect2);


                if (dsHeGe.Tables[0].Rows.Count <= 0 && dsBaoFei.Tables[0].Rows.Count <= 0)
                {
                    dbTrans.Rollback();
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "合格品数量=0 并且报废数量=0,无法报工。");
                }
                else
                {
                    string scrapQty = "0";
                    if (dsBaoFei.Tables[0].Rows.Count > 0)
                    {
                        scrapQty = Convert.ToString(dsBaoFei.Tables[0].Rows[0][0]);
                    }
                    string okQty = "0";
                    if (dsHeGe.Tables[0].Rows.Count > 0)
                    {
                        okQty = Convert.ToString(dsHeGe.Tables[0].Rows[0][0]);
                    }
                    scrapQty = string.IsNullOrEmpty(scrapQty) ? "0" : scrapQty;
                    okQty    = string.IsNullOrEmpty(okQty) ? "0" : okQty;
                    if (scrapQty == "0" && okQty == "0")
                    {
                        dbTrans.Rollback();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "合格品数量=0 并且报废数量=0,无法报工。");
                    }
                    else
                    {
                        string sql  = @"SELECT GETDATE()";
                        string time = Convert.ToString(db.ExecuteScalar(CommandType.Text, sql));

                        string strNewKey = System.Guid.NewGuid().ToString();
                        string roomKey   = Convert.ToString(hsTable["ROOM_KEY"]);
                        string creator   = Convert.ToString(hsTable["CREATOR"]);
                        string timezone  = Convert.ToString(hsTable["CREATE_TIMEZONE"]);
                        string reportor  = Convert.ToString(hsTable["REPORTOR"]);
                        string shiftName = Convert.ToString(hsTable["SHIFT_NAME"]);

                        sqlInsert1 = string.Format(CONST_INSERT_POR_WORK_ORDER_REPORT_1,
                                                   strNewKey,       //主键
                                                   orderNumber,     //工单号
                                                   okQty,           //合格品数量
                                                   scrapQty,        //报废数量
                                                   time,
                                                   roomKey,         //工厂车间
                                                   creator,         //创建人
                                                   timezone,        //创建时区
                                                   reportor,        //报工人
                                                   shiftName        //班次
                                                   );
                        dbCom.CommandText = sqlInsert1;
                        int p = dbCom.ExecuteNonQuery();

                        sqlUpdate4        = string.Format(CONST_UPDATE_POR_WORK_WIP_TRANSACTION_4, orderNumber);
                        dbCom.CommandText = sqlUpdate4;
                        int q = dbCom.ExecuteNonQuery();

                        sqlUpdate5        = string.Format(CONST_UPDATE_POR_QC_DATA_5, orderNumber);
                        dbCom.CommandText = sqlUpdate5;
                        int w = dbCom.ExecuteNonQuery();

                        sqlUpdate6        = string.Format(CONST_UPDATE_WST_RK_ZXBPO_6, orderNumber);
                        dbCom.CommandText = sqlUpdate6;
                        int e = dbCom.ExecuteNonQuery();

                        ///////////////////////////////////////////////////////////////////////////////////////////////////////
                        //调用RFC
                        DataSet   dsOut = new DataSet();
                        DataSet   dsIn  = new DataSet();
                        DataTable dtWorkOrderWorkFor = new DataTable();
                        dtWorkOrderWorkFor.Columns.Add("ITMNO");
                        dtWorkOrderWorkFor.Columns.Add("AUFNR");
                        dtWorkOrderWorkFor.Columns.Add("WERKS");
                        dtWorkOrderWorkFor.Columns.Add("VORNR");
                        dtWorkOrderWorkFor.Columns.Add("LMNGA");
                        dtWorkOrderWorkFor.Columns.Add("MEINH");
                        dtWorkOrderWorkFor.Columns.Add("XMNGA");
                        dtWorkOrderWorkFor.Columns.Add("CON_END");

                        DataRow dr = dtWorkOrderWorkFor.NewRow();
                        dr["ITMNO"]   = 1;
                        dr["AUFNR"]   = hsTable["AUFNR"].ToString(); //工单号
                        dr["WERKS"]   = "HZ01";                      //杭州晶硅
                        dr["VORNR"]   = "0060";                      //晶硅电池
                        dr["LMNGA"]   = okQty;                       //合格品数量
                        dr["MEINH"]   = "PC";                        //单位
                        dr["XMNGA"]   = scrapQty;                    //报废数量
                        dr["CON_END"] = "";                          //确认
                        dtWorkOrderWorkFor.Rows.Add(dr);


                        dtWorkOrderWorkFor.TableName = "ZPP_WORK";
                        dsIn.Merge(dtWorkOrderWorkFor);

                        //AllCommonFunctions.SAPRemoteFunctionCall("RFC FUNCTION NAME", dsIn, out dsOut);
                        AllCommonFunctions.SAPRemoteFunctionCall("Z_RFC_COF", dsIn, out dsOut);
                        bool bRollback = false;
                        if (dsOut == null ||
                            dsOut.Tables.Count == 0 ||
                            dsOut.Tables[0].Rows.Count == 0 ||
                            int.Parse(dsOut.Tables[0].Rows[0]["NUMBER"].ToString()) < 0)
                        {
                            bRollback = true;
                        }

                        if (!bRollback) //MESSAGE
                        {
                            dbTrans.Commit();
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "工单报工成功!");
                        }
                        else
                        {
                            dbTrans.Rollback();
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, dsOut.Tables[0].Rows[0][1].ToString());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                dbTrans.Rollback();
                LogService.LogError("GongDanBaoGong Error: " + ex.Message);
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
            }

            return(dsReturn);
        }
Beispiel #20
0
        public DataSet GetCheckListJobs(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            int pages   = 0;
            int records = 0;

            if (reqDS != null &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGENO) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGESIZE))
            {
                string equipmentKey      = reqDS.ExtendedProperties.ContainsKey(EMS_CHECKLIST_JOBS_FIELDS.FIELD_EQUIPMENT_KEY) ? reqDS.ExtendedProperties[EMS_CHECKLIST_JOBS_FIELDS.FIELD_EQUIPMENT_KEY].ToString() : string.Empty;
                string checkListJobKey   = reqDS.ExtendedProperties.ContainsKey(EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_KEY) ? reqDS.ExtendedProperties[EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_KEY].ToString() : string.Empty;
                string checkListJobName  = reqDS.ExtendedProperties.ContainsKey(EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_NAME) ? reqDS.ExtendedProperties[EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_NAME].ToString() : string.Empty;
                string checkListJobState = reqDS.ExtendedProperties.ContainsKey(EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_STATE) ? reqDS.ExtendedProperties[EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_STATE].ToString() : string.Empty;
                int    pageNo            = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGENO]);
                int    pageSize          = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGESIZE]);

                try
                {
                    string sqlString = @"SELECT CJ.*,
                                               E.EQUIPMENT_NAME,
                                               C.CHECKLIST_NAME,
                                               CASE CJ.PM_TYPE
                                                 WHEN 'SCHEDULE' THEN
                                                  PS.SCHEDULE_NAME
                                                 WHEN 'CONDITION' THEN
                                                  PC.CONDITION_NAME
                                                 ELSE
                                                  ''
                                               END AS PM_NAME
                                          FROM EMS_CHECKLIST_JOBS CJ,
                                               EMS_CHECKLIST      C,
                                               EMS_PM_SCHEDULE    PS,
                                               EMS_PM_CONDITION   PC,
                                               EMS_EQUIPMENTS     E
                                         WHERE CJ.CHECKLIST_KEY = C.CHECKLIST_KEY
                                           AND CJ.PM_KEY = PS.SCHEDULE_KEY(+)
                                           AND CJ.PM_KEY = PC.CONDITION_KEY(+)
                                           AND CJ.EQUIPMENT_KEY = E.EQUIPMENT_KEY";

                    if (!string.IsNullOrEmpty(checkListJobState))
                    {
                        sqlString += string.Format(" AND CJ.CHECKLIST_JOB_STATE = '{0}'", checkListJobState);
                    }

                    if (!string.IsNullOrEmpty(checkListJobName))
                    {
                        sqlString += string.Format(" AND CJ.CHECKLIST_JOB_NAME LIKE '%{0}%'", checkListJobName);
                    }

                    if (!string.IsNullOrEmpty(checkListJobKey))
                    {
                        sqlString += string.Format(" AND CJ.CHECKLIST_JOB_KEY = '{0}'", checkListJobKey);
                    }

                    if (!string.IsNullOrEmpty(equipmentKey))
                    {
                        sqlString += string.Format(" AND E.EQUIPMENT_KEY = '{0}'", equipmentKey);
                    }

                    if (pageNo > 0 && pageSize > 0)
                    {
                        AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, resDS, EMS_CHECKLIST_JOBS_FIELDS.DATABASE_TABLE_NAME);
                    }
                    else
                    {
                        db.LoadDataSet(CommandType.Text, sqlString, resDS, new string[] { EMS_CHECKLIST_JOBS_FIELDS.DATABASE_TABLE_NAME });
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_PAGES, pages);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_RECORDS, records);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("GetCheckListJobs Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #21
0
        public DataSet InsertCheckList(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null && reqDS.Tables.Contains(EMS_CHECKLIST_FIELDS.DATABASE_TABLE_NAME))
            {
                DataTable checkListDataTable = reqDS.Tables[EMS_CHECKLIST_FIELDS.DATABASE_TABLE_NAME];

                try
                {
                    EMS_CHECKLIST_FIELDS checkListFields = new EMS_CHECKLIST_FIELDS();

                    List <string> sqlStringList = DatabaseTable.BuildInsertSqlStatements(checkListFields, checkListDataTable);

                    string checkListKey  = string.Empty;
                    string checkListName = string.Empty;
                    string createTime    = string.Empty;
                    string sqlString     = string.Empty;

                    if (sqlStringList.Count > 0 && checkListDataTable.Rows.Count > 0)
                    {
                        checkListKey  = checkListDataTable.Rows[0][EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY].ToString();
                        checkListName = checkListDataTable.Rows[0][EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME].ToString();

                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Validate Check List Name

                                string returnData = AllCommonFunctions.GetSpecifyTableColumnData(checkListFields, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME, checkListName, transaction);

                                if (!string.IsNullOrEmpty(returnData))
                                {
                                    throw new Exception("检查表单名称已存在!");
                                }

                                #endregion

                                #region Insert Check List Data

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                {
                                    createTime = AllCommonFunctions.GetSpecifyTableColumnData(checkListFields, EMS_CHECKLIST_FIELDS.FIELD_CREATE_TIME, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY, checkListKey, transaction);
                                }
                                else
                                {
                                    throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                }

                                #endregion

                                #region Insert Check List Items Data

                                if (reqDS.Tables[EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME] != null && reqDS.Tables[EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME].Rows.Count > 0)
                                {
                                    DbCommand insertCommand = connection.CreateCommand();

                                    insertCommand.CommandType = CommandType.Text;
                                    insertCommand.CommandText = @"INSERT INTO EMS_CHECKLIST_ITEM
                                                                      (CHECKLIST_KEY, CHECKITEM_KEY, SEQUENCE, STANDARD, OPTIONAL)
                                                                    VALUES
                                                                      (:P1, :P2, :P3, :P4, :P5)";

                                    db.AddInParameter(insertCommand, "P1", DbType.String, checkListKey);
                                    db.AddInParameter(insertCommand, "P2", DbType.String, EMS_CHECKLIST_ITEM_FIELDS.FIELD_CHECKITEM_KEY, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P3", DbType.Int32, EMS_CHECKLIST_ITEM_FIELDS.FIELD_SEQUENCE, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P4", DbType.String, EMS_CHECKLIST_ITEM_FIELDS.FIELD_STANDARD, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P5", DbType.Int32, EMS_CHECKLIST_ITEM_FIELDS.FIELD_OPTIONAL, DataRowVersion.Current);

                                    if (db.UpdateDataSet(reqDS, EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME, insertCommand, null, null, transaction) <= 0)
                                    {
                                        throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                    }
                                }

                                #endregion

                                transaction.Commit();
                            }
                            catch
                            {
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, createTime);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("InsertCheckList Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #22
0
        /// <summary>
        /// 新增设备组。
        /// </summary>
        /// <param name="dsParams">包含设备组数据的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet InsertEquipmentGroups(DataSet dsParams)
        {
            DataSet resDS = new DataSet();

            try
            {
                if (dsParams != null && dsParams.Tables.Contains(EMS_EQUIPMENT_GROUPS_FIELDS.DATABASE_TABLE_NAME) && dsParams.Tables.Contains(PARAMETERS_INPUT.DATABASE_TABLE_NAME))
                {
                    DataTable equipmentGroupsDataTable = dsParams.Tables[EMS_EQUIPMENT_GROUPS_FIELDS.DATABASE_TABLE_NAME];
                    DataTable inputParamDataTable      = dsParams.Tables[PARAMETERS_INPUT.DATABASE_TABLE_NAME];

                    EMS_EQUIPMENT_GROUPS_FIELDS equipmentGroupsFields = new EMS_EQUIPMENT_GROUPS_FIELDS();

                    List <string> sqlStringList = DatabaseTable.BuildInsertSqlStatements(equipmentGroupsFields, equipmentGroupsDataTable);

                    string equipmentGroupKey  = string.Empty;
                    string equipmentGroupName = string.Empty;
                    string sqlString          = string.Empty;
                    string createTime         = string.Empty;

                    if (sqlStringList.Count > 0 && inputParamDataTable.Rows.Count > 0 && equipmentGroupsDataTable.Rows.Count > 0)
                    {
                        equipmentGroupKey = inputParamDataTable.Rows[0][PARAMETERS_INPUT.FIELD_KEY].ToString();

                        equipmentGroupName = equipmentGroupsDataTable.Rows[0][EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME].ToString();

                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Check Equipment Group Name

                                string returnData = AllCommonFunctions.GetSpecifyTableColumnData(equipmentGroupsFields, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME, equipmentGroupName, transaction);

                                if (!string.IsNullOrEmpty(returnData))
                                {
                                    throw new Exception("${res:FanHai.Hemera.Modules.EMS.EquipmentGroups.M0001}");
                                }

                                #endregion

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                {
                                    createTime = AllCommonFunctions.GetSpecifyTableColumnData(equipmentGroupsFields, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_CREATE_TIME, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_KEY,
                                                                                              equipmentGroupKey, transaction);
                                }
                                else
                                {
                                    throw new Exception("${res:FanHai.Hemera.Module.Common.M0002}");
                                }

                                transaction.Commit();
                            }
                            catch (Exception ex)
                            {
                                LogService.LogError("InsertEquipmentGroups Error: " + ex.Message);
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, string.Empty, createTime);
                }
                else
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, "${res:FanHai.Hemera.Module.Common.M0001}");
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, ex.Message);
                LogService.LogError("InsertEquipmentGroups Error: " + ex.Message);
            }

            return(resDS);
        }
Beispiel #23
0
        /// <summary>
        /// 查询包含批次信息的数据集。
        /// </summary>
        /// <param name="dsSearch">
        /// 包含查询条件的数据集。
        /// </param>
        /// <param name="pconfig">
        /// 分页查询的配置对象。
        /// </param>
        /// <param name="isPaging">
        /// 是否分页查询。
        /// </param>
        /// <returns>包含批次信息的数据集。</returns>
        private DataSet SearchLotList(DataSet dsSearch, ref PagingQueryConfig pconfig, bool isPaging)
        {
            DataSet       dsReturn = new DataSet();
            StringBuilder sBuilder = new StringBuilder();

            try
            {
                sBuilder.Append(@"SELECT  A.[LOT_KEY],A.[LOT_NUMBER],A.[WORK_ORDER_KEY],A.[WORK_ORDER_NO],A.[WORK_ORDER_SEQ]
                                ,A.[PART_VER_KEY],A.[PART_NUMBER],A.[PRO_ID],A.[PRO_LEVEL],A.[PRIORITY],A.[QUANTITY_INITIAL]
                                ,A.[LOT_LINE_CODE],A.[LOT_LINE_KEY]
                                ,A.[QUANTITY],A.[ROUTE_ENTERPRISE_VER_KEY],A.[CUR_ROUTE_VER_KEY],A.[CUR_STEP_VER_KEY]
                                ,A.[CUR_PRODUCTION_LINE_KEY],A.[LINE_NAME],A.[START_WAIT_TIME],A.[START_PROCESS_TIME]
                                ,A.[EDC_INS_KEY],A.[STATE_FLAG],A.[IS_MAIN_LOT],A.[SPLIT_FLAG],A.[LOT_SEQ],A.[REWORK_FLAG]
                                ,A.[HOLD_FLAG],A.[SHIPPED_FLAG],A.[DELETED_TERM_FLAG],A.[IS_PRINT],A.[LOT_TYPE],A.[CREATE_TYPE]
                                ,A.[COLOR],A.[PALLET_NO],A.[PALLET_TIME],A.[STATUS],A.[OPERATOR],A.[OPR_LINE],A.[OPR_COMPUTER]
                                ,A.[OPR_LINE_PRE],A.[CHILD_LINE],A.[MATERIAL_CODE],A.[MATERIAL_LOT],A.[SUPPLIER_NAME],A.[SI_LOT]
                                ,A.[EFFICIENCY],A.[FACTORYROOM_KEY],A.[FACTORYROOM_NAME],A.[CREATE_OPERTION_NAME],A.[CREATOR]
                                ,A.[CREATE_TIME],A.[CREATE_TIMEZONE_KEY],A.[EDITOR],A.[EDIT_TIME],A.[EDIT_TIMEZONE],A.[SHIFT_NAME]
                                ,A.[DESCRIPTIONS],A.[LOT_SIDECODE],A.[LOT_CUSTOMERCODE],A.[ORG_WORK_ORDER_NO],w.PART_NUMBER AS ORG_PART_NUMBER,
                                E.ENTERPRISE_NAME,
                                D.ROUTE_NAME,
                                B.ROUTE_STEP_NAME,
                               (SELECT TOP 1 EQUIPMENT_KEY 
                                 FROM EMS_LOT_EQUIPMENT 
                                 WHERE LOT_KEY=A.LOT_KEY
                                 AND STEP_KEY=A.CUR_STEP_VER_KEY
                                 AND END_TIMESTAMP IS NULL) AS EQUIPMENT_KEY,
                                 
                               (SELECT EQUIPMENT_NAME
                                FROM EMS_EQUIPMENTS
                                WHERE EQUIPMENT_KEY=(SELECT TOP 1 EQUIPMENT_KEY 
                                                    FROM EMS_LOT_EQUIPMENT 
                                                    WHERE LOT_KEY=A.LOT_KEY
                                                    AND STEP_KEY=A.CUR_STEP_VER_KEY
                                                    AND END_TIMESTAMP IS NULL)) AS EQUIPMENT_NAME
                                FROM POR_LOT A
                                LEFT JOIN POR_WORK_ORDER w ON w.ORDER_NUMBER=A.ORG_WORK_ORDER_NO
                                LEFT JOIN POR_ROUTE_STEP B ON A.CUR_STEP_VER_KEY= B.ROUTE_STEP_KEY
                                LEFT JOIN POR_ROUTE_ROUTE_VER D ON A.CUR_ROUTE_VER_KEY=D.ROUTE_ROUTE_VER_KEY 
                                LEFT JOIN POR_ROUTE_ENTERPRISE_VER E ON  A.ROUTE_ENTERPRISE_VER_KEY =E.ROUTE_ENTERPRISE_VER_KEY
                                WHERE A.STATUS < 2");
                if (dsSearch != null && dsSearch.Tables.Contains(TRANS_TABLES.TABLE_MAIN_DATA))
                {
                    DataTable dtParams = dsSearch.Tables[TRANS_TABLES.TABLE_MAIN_DATA];
                    Hashtable htParams = CommonUtils.ConvertToHashtable(dtParams);
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_FACTORYROOM_KEY))
                    {
                        string roomKey = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_FACTORYROOM_KEY]);
                        sBuilder.AppendFormat(" AND A.FACTORYROOM_KEY ='{0}'", roomKey.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_LOT_NUMBER))
                    {
                        string lotNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_LOT_NUMBER]);
                        sBuilder.AppendFormat(" AND A.LOT_NUMBER LIKE '%{0}%'", lotNumber.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_LOT_NUMBER + "_START"))
                    {
                        string lotNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_LOT_NUMBER + "_START"]);
                        sBuilder.AppendFormat(" AND A.LOT_NUMBER >='{0}'", lotNumber.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_LOT_NUMBER + "_END"))
                    {
                        string lotNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_LOT_NUMBER + "_END"]);
                        sBuilder.AppendFormat(" AND A.LOT_NUMBER <='{0}'", lotNumber.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_HOLD_FLAG))
                    {
                        string holdFalg = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_HOLD_FLAG]);
                        sBuilder.AppendFormat(" AND A.HOLD_FLAG={0}", holdFalg.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_LOT_TYPE))
                    {
                        string lotType = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_LOT_TYPE]);
                        sBuilder.AppendFormat(" AND A.LOT_TYPE='{0}'", lotType.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_STATE_FLAG))
                    {
                        string stateFlag = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_STATE_FLAG]);
                        sBuilder.AppendFormat(" AND A.STATE_FLAG={0}", stateFlag.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_CREATOR))
                    {
                        string creator = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_CREATOR]);
                        sBuilder.AppendFormat(" AND A.CREATOR='{0}'", creator.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_DELETED_TERM_FLAG))
                    {
                        string deletedTermFlag = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_DELETED_TERM_FLAG]);
                        sBuilder.AppendFormat(" AND A.DELETED_TERM_FLAG={0}", deletedTermFlag.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_SHIPPED_FLAG))
                    {
                        string flag = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_SHIPPED_FLAG]);
                        sBuilder.AppendFormat(" AND A.SHIPPED_FLAG={0}", flag.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_PRO_ID))
                    {
                        string proId = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_PRO_ID]);
                        sBuilder.AppendFormat(" AND A.PRO_ID LIKE '%{0}%'", proId.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_PART_NUMBER))
                    {
                        string partNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_PART_NUMBER]);
                        sBuilder.AppendFormat(" AND A.PART_NUMBER LIKE '%{0}%'", partNumber.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_WORK_ORDER_NO))
                    {
                        string orderNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_WORK_ORDER_NO]);
                        sBuilder.AppendFormat(" AND A.WORK_ORDER_NO LIKE '%{0}%'", orderNumber.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_ORG_WORK_ORDER_NO))
                    {
                        string orderNumber = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_ORG_WORK_ORDER_NO]);
                        sBuilder.AppendFormat(" AND A.ORG_WORK_ORDER_NO LIKE '%{0}%'", orderNumber.PreventSQLInjection());
                    }

                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_PALLET_NO))
                    {
                        string palletNo = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_PALLET_NO]);
                        sBuilder.AppendFormat(" AND A.PALLET_NO LIKE '%{0}%'", palletNo.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_LINE_NAME))
                    {
                        string lineName = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_LINE_NAME]);
                        sBuilder.AppendFormat(" AND A.LINE_NAME ='{0}'", lineName.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_SHIFT_NAME))
                    {
                        string shiftName = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_SHIFT_NAME]);
                        sBuilder.AppendFormat(" AND A.SHIFT_NAME='{0}'", shiftName.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_ROUTE_ENTERPRISE_VER_FIELDS.FIELD_ENTERPRISE_NAME))
                    {
                        string enterpriseName = Convert.ToString(htParams[POR_ROUTE_ENTERPRISE_VER_FIELDS.FIELD_ENTERPRISE_NAME]);
                        sBuilder.AppendFormat(" AND E.ENTERPRISE_NAME='{0}'", enterpriseName.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_ROUTE_ROUTE_VER_FIELDS.FIELD_ROUTE_NAME))
                    {
                        string routeName = Convert.ToString(htParams[POR_ROUTE_ROUTE_VER_FIELDS.FIELD_ROUTE_NAME]);
                        sBuilder.AppendFormat(" AND D.ROUTE_NAME='{0}'", routeName.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME))
                    {
                        string stepName = Convert.ToString(htParams[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME]);
                        sBuilder.AppendFormat(" AND B.ROUTE_STEP_NAME='{0}'", stepName.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_CREATE_TIME + "_START"))
                    {
                        string createStartTime = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_CREATE_TIME + "_START"]);
                        sBuilder.AppendFormat(" AND A.CREATE_TIME >='{0}'", createStartTime.PreventSQLInjection());
                    }
                    if (htParams.ContainsKey(POR_LOT_FIELDS.FIELD_CREATE_TIME + "_END"))
                    {
                        string createEndTime = Convert.ToString(htParams[POR_LOT_FIELDS.FIELD_CREATE_TIME + "_END"]);
                        sBuilder.AppendFormat(" AND A.CREATE_TIME<='{0}'", createEndTime.PreventSQLInjection());
                    }
                }
                if (!isPaging)
                {
                    sBuilder.Append(" ORDER BY A.LOT_NUMBER ASC,A.CREATE_TIME DESC");
                    dsReturn = this._dbRead.ExecuteDataSet(CommandType.Text, sBuilder.ToString());
                }
                else
                {
                    int pages   = 0;
                    int records = 0;
                    AllCommonFunctions.CommonPagingData(sBuilder.ToString(),
                                                        pconfig.PageNo,
                                                        pconfig.PageSize,
                                                        out pages,
                                                        out records,
                                                        this._dbRead,
                                                        dsReturn,
                                                        POR_LOT_FIELDS.DATABASE_TABLE_NAME,
                                                        "ASC",
                                                        new string[] { "LOT_NUMBER", "CREATE_TIME" });
                    dsReturn.Tables[0].Columns[POR_LOT_FIELDS.FIELD_START_WAIT_TIME].DateTimeMode    = DataSetDateTime.Unspecified;
                    dsReturn.Tables[0].Columns[POR_LOT_FIELDS.FIELD_START_PROCESS_TIME].DateTimeMode = DataSetDateTime.Unspecified;
                    dsReturn.Tables[0].Columns[POR_LOT_FIELDS.FIELD_EDIT_TIME].DateTimeMode          = DataSetDateTime.Unspecified;
                    pconfig.Pages   = pages;
                    pconfig.Records = records;
                }
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("SearchLotList Error: " + ex.Message);
            }
            return(dsReturn);
        }
Beispiel #24
0
        public DataSet UpdateCheckList(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.Tables.Contains(EMS_CHECKLIST_FIELDS.DATABASE_TABLE_NAME) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                DataTable checkListDataTable = reqDS.Tables[EMS_CHECKLIST_FIELDS.DATABASE_TABLE_NAME];

                string checkListKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor       = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime     = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_CHECKLIST_FIELDS checkListFields = new EMS_CHECKLIST_FIELDS();

                    #region Build Update SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(checkListKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, checkListKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildUpdateSqlStatements(checkListFields, checkListDataTable, conditionsList);

                    string checkListName = string.Empty;
                    string sqlString     = string.Empty;

                    if (sqlStringList.Count > 0 && checkListDataTable.Rows.Count > 0)
                    {
                        checkListName = checkListDataTable.Rows[0][EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME].ToString();

                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Validate Check List Name

                                if (!string.IsNullOrEmpty(checkListName))
                                {
                                    conditions = new Conditions();

                                    conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME, GlobalEnums.DatabaseCompareOperator.Equal, checkListName);

                                    conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY, GlobalEnums.DatabaseCompareOperator.NotEqual, checkListKey);

                                    string returnData = AllCommonFunctions.GetSpecifyTableColumnData(checkListFields, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME, conditions, transaction);

                                    if (!string.IsNullOrEmpty(returnData))
                                    {
                                        throw new Exception("检查表单名称已存在!");
                                    }
                                }

                                #endregion

                                #region Update Check List Data

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                {
                                    editTime = AllCommonFunctions.GetSpecifyTableColumnData(checkListFields, EMS_CHECKLIST_FIELDS.FIELD_EDIT_TIME, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY,
                                                                                            checkListKey, transaction);
                                }
                                else
                                {
                                    throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                }

                                #endregion

                                #region Insert Check List Items Data

                                if (reqDS.Tables[EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME] != null && reqDS.Tables[EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME].Rows.Count > 0)
                                {
                                    #region Delete Check List Items Data

                                    sqlString = string.Format("DELETE EMS_CHECKLIST_ITEM WHERE CHECKLIST_KEY = '{0}'", checkListKey);

                                    db.ExecuteNonQuery(transaction, CommandType.Text, sqlString);

                                    #endregion

                                    DbCommand insertCommand = connection.CreateCommand();

                                    insertCommand.CommandType = CommandType.Text;
                                    insertCommand.CommandText = @"INSERT INTO EMS_CHECKLIST_ITEM
                                                                      (CHECKLIST_KEY, CHECKITEM_KEY, SEQUENCE, STANDARD, OPTIONAL)
                                                                    VALUES
                                                                      (:P1, :P2, :P3, :P4, :P5)";

                                    db.AddInParameter(insertCommand, "P1", DbType.String, checkListKey);
                                    db.AddInParameter(insertCommand, "P2", DbType.String, EMS_CHECKLIST_ITEM_FIELDS.FIELD_CHECKITEM_KEY, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P3", DbType.Int32, EMS_CHECKLIST_ITEM_FIELDS.FIELD_SEQUENCE, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P4", DbType.String, EMS_CHECKLIST_ITEM_FIELDS.FIELD_STANDARD, DataRowVersion.Current);
                                    db.AddInParameter(insertCommand, "P5", DbType.Int32, EMS_CHECKLIST_ITEM_FIELDS.FIELD_OPTIONAL, DataRowVersion.Current);

                                    if (db.UpdateDataSet(reqDS, EMS_CHECKLIST_ITEM_FIELDS.DATABASE_TABLE_NAME, insertCommand, null, null, transaction) <= 0)
                                    {
                                        throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                    }
                                }

                                #endregion

                                transaction.Commit();
                            }
                            catch
                            {
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, editTime);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("UpdateCheckList Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #25
0
        public DataSet InsertPart(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null && reqDS.Tables.Contains(EMS_EQUIPMENT_PARTS_FIELDS.DATABASE_TABLE_NAME))
            {
                DataTable partsDataTable = reqDS.Tables[EMS_EQUIPMENT_PARTS_FIELDS.DATABASE_TABLE_NAME];

                if (partsDataTable.Rows.Count > 0)
                {
                    try
                    {
                        EMS_EQUIPMENT_PARTS_FIELDS partsFields = new EMS_EQUIPMENT_PARTS_FIELDS();

                        List <string> sqlStringList = DatabaseTable.BuildInsertSqlStatements(partsFields, partsDataTable);

                        string partKey    = partsDataTable.Rows[0][EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_KEY].ToString();
                        string partName   = partsDataTable.Rows[0][EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_NAME].ToString();
                        string createTime = string.Empty;
                        string sqlString  = string.Empty;

                        if (sqlStringList.Count > 0)
                        {
                            sqlString = sqlStringList[0];
                        }

                        using (DbConnection connection = db.CreateConnection())
                        {
                            connection.Open();

                            using (DbTransaction transaction = connection.BeginTransaction())
                            {
                                try
                                {
                                    #region Validate Part Name

                                    string returnData = AllCommonFunctions.GetSpecifyTableColumnData(partsFields, EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_NAME, EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_NAME, partName, transaction);

                                    if (!string.IsNullOrEmpty(returnData))
                                    {
                                        throw new Exception("备件名称已存在!");
                                    }

                                    #endregion

                                    #region Insert Part Data

                                    if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                    {
                                        createTime = AllCommonFunctions.GetSpecifyTableColumnData(partsFields, EMS_EQUIPMENT_PARTS_FIELDS.FIELD_CREATE_TIME, EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_KEY, partKey, transaction);
                                    }
                                    else
                                    {
                                        throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                    }

                                    #endregion

                                    transaction.Commit();
                                }
                                catch
                                {
                                    transaction.Rollback();

                                    throw;
                                }
                                finally
                                {
                                    connection.Close();
                                }
                            }
                        }

                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, createTime);
                    }
                    catch (Exception ex)
                    {
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                        LogService.LogError("InsertPart Error: " + ex.Message);
                    }
                }
                else
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #26
0
        public DataSet GetParts(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            int pages   = 0;
            int records = 0;

            if (reqDS != null &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGENO) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_PAGESIZE))
            {
                string partName = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                int    pageNo   = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGENO]);
                int    pageSize = Convert.ToInt32(reqDS.ExtendedProperties[PARAMETERS.INPUT_PAGESIZE]);

                try
                {
                    EMS_EQUIPMENT_PARTS_FIELDS partsFields = new EMS_EQUIPMENT_PARTS_FIELDS();

                    List <string> interestColumns = new List <string>();

                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_KEY);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_NAME);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_DESCRIPTION);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_TYPE);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_MODE);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_UNIT);

                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_CREATOR);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_CREATE_TIMEZONE_KEY);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_CREATE_TIME);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EDITOR);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EDIT_TIMEZONE_KEY);
                    interestColumns.Add(EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EDIT_TIME);

                    Conditions conditions = new Conditions();

                    if (!string.IsNullOrEmpty(partName))
                    {
                        conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_EQUIPMENT_PARTS_FIELDS.FIELD_EQUIPMENT_PART_NAME, GlobalEnums.DatabaseCompareOperator.Like, string.Format("%{0}%", partName));
                    }

                    string sqlString = DatabaseTable.BuildQuerySqlStatement(partsFields, interestColumns, conditions);

                    if (pageNo > 0 && pageSize > 0)
                    {
                        AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, resDS, EMS_EQUIPMENT_PARTS_FIELDS.DATABASE_TABLE_NAME);
                    }
                    else
                    {
                        db.LoadDataSet(CommandType.Text, sqlString, resDS, new string[] { EMS_EQUIPMENT_PARTS_FIELDS.DATABASE_TABLE_NAME });
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_PAGES, pages);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_RECORDS, records);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("GetParts Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #27
0
        public DataSet UpdateCheckListJob(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.Tables.Contains(EMS_CHECKLIST_JOBS_FIELDS.DATABASE_TABLE_NAME) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                DataTable checkListJobsDataTable = reqDS.Tables[EMS_CHECKLIST_JOBS_FIELDS.DATABASE_TABLE_NAME];

                string checkListJobKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor          = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime        = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_CHECKLIST_JOBS_FIELDS checkListJobsFields = new EMS_CHECKLIST_JOBS_FIELDS();

                    #region Build Update SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(checkListJobKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, checkListJobKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildUpdateSqlStatements(checkListJobsFields, checkListJobsDataTable, conditionsList);

                    string sqlString = string.Empty;

                    if (sqlStringList.Count > 0 && checkListJobsDataTable.Rows.Count > 0)
                    {
                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Update Check List Job Data

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                {
                                    editTime = AllCommonFunctions.GetSpecifyTableColumnData(checkListJobsFields, EMS_CHECKLIST_JOBS_FIELDS.FIELD_EDIT_TIME, EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_JOB_KEY,
                                                                                            checkListJobKey, transaction);
                                }
                                else
                                {
                                    throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                }

                                #endregion

                                transaction.Commit();
                            }
                            catch
                            {
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, editTime);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("UpdateCheckListJob Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Beispiel #28
0
        /// <summary>
        /// 查询工序数据。
        /// </summary>
        /// <param name="dsParams">包含查询条件的数据集。</param>
        /// <param name="operationName">工序名称。</param>
        /// <param name="pageNo">页号。</param>
        /// <param name="pageSize">每页记录数。</param>
        /// <param name="pages">总页数。</param>
        /// <param name="records">总记录数。</param>
        /// <returns>包含工序数据的数据集对象。</returns>
        public DataSet GetOperations(DataSet dsParams, string operationName, int pageNo, int pageSize, out int pages, out int records)
        {
            DataSet dsReturn = new DataSet();

            pages   = 0;
            records = 0;

            try
            {
                POR_ROUTE_OPERATION_VER_FIELDS operationsFields = new POR_ROUTE_OPERATION_VER_FIELDS();

                #region 返回的数据列

                List <string> interestColumns = new List <string>();

                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DESCRIPTIONS);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_IMAGE_KEY);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DURATION);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_VERSION);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_STATUS);
                interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_IS_REWORKABLE);

                #endregion

                #region 组织查询条件

                Conditions conditions = new Conditions();

                if (dsParams != null && dsParams.Tables.Contains(PARAMETERS_INPUT.DATABASE_TABLE_NAME))
                {
                    DataTable inputParamDataTable = dsParams.Tables[PARAMETERS_INPUT.DATABASE_TABLE_NAME];

                    if (inputParamDataTable != null && inputParamDataTable.Columns.Contains(PARAMETERS_INPUT.FIELD_KEY))
                    {
                        foreach (DataRow row in inputParamDataTable.Rows)
                        {
                            object key = row[PARAMETERS_INPUT.FIELD_KEY];

                            if (key == null || key == DBNull.Value)
                            {
                                conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY, DatabaseCompareOperator.Null, string.Empty);
                            }
                            else
                            {
                                conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY, DatabaseCompareOperator.Equal, key.ToString());
                            }
                        }
                    }
                }

                #endregion
                //已激活的工序。
                conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_STATUS, DatabaseCompareOperator.Equal, "1");
                //工序名称
                if (!string.IsNullOrEmpty(operationName))
                {
                    conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME, DatabaseCompareOperator.Like, string.Format("%{0}%", operationName));
                }
                //创建查询SQL
                string sqlString = DatabaseTable.BuildQuerySqlStatement(operationsFields, interestColumns, conditions);

                if (pageNo > 0 && pageSize > 0)//分页查询
                {
                    AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, dsReturn, POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME);
                }
                else
                {
                    db.LoadDataSet(CommandType.Text, sqlString, dsReturn, new string[] { POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME });
                }

                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("GetOperations Error: " + ex.Message);
            }

            return(dsReturn);
        }
Beispiel #29
0
        /// <summary>
        /// 更新设备组数据。
        /// </summary>
        /// <param name="dsParams">包含设备组数据的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet UpdateEquipmentGroups(DataSet dsParams)
        {
            DataSet resDS = new DataSet();

            try
            {
                if (dsParams != null && dsParams.Tables.Contains(EMS_EQUIPMENT_GROUPS_FIELDS.DATABASE_TABLE_NAME) && dsParams.Tables.Contains(PARAMETERS_INPUT.DATABASE_TABLE_NAME))
                {
                    DataTable equipmentGroupsDataTable = dsParams.Tables[EMS_EQUIPMENT_GROUPS_FIELDS.DATABASE_TABLE_NAME];
                    DataTable inputParamDataTable      = dsParams.Tables[PARAMETERS_INPUT.DATABASE_TABLE_NAME];

                    #region Build Conditions List

                    List <Conditions> conditionsList = new List <Conditions>();

                    foreach (DataRow row in inputParamDataTable.Rows)
                    {
                        Conditions conditions = new Conditions();

                        Condition keyCondition;

                        if (row[PARAMETERS_INPUT.FIELD_KEY] != null && row[PARAMETERS_INPUT.FIELD_KEY] != DBNull.Value)
                        {
                            keyCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_KEY,
                                                         DatabaseCompareOperator.Equal, row[PARAMETERS_INPUT.FIELD_KEY].ToString());
                        }
                        else
                        {
                            keyCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_KEY,
                                                         DatabaseCompareOperator.Null, string.Empty);
                        }

                        conditions.Add(keyCondition);

                        Condition editorCondition;

                        if (row[PARAMETERS_INPUT.FIELD_EDITOR] != null && row[PARAMETERS_INPUT.FIELD_EDITOR] != DBNull.Value)
                        {
                            editorCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EDITOR,
                                                            DatabaseCompareOperator.Equal, row[PARAMETERS_INPUT.FIELD_EDITOR].ToString());
                        }
                        else
                        {
                            editorCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EDITOR,
                                                            DatabaseCompareOperator.Null, string.Empty);
                        }

                        conditions.Add(editorCondition);

                        Condition editTimeCondition;

                        if (row[PARAMETERS_INPUT.FIELD_EDIT_TIME] != null && row[PARAMETERS_INPUT.FIELD_EDIT_TIME] != DBNull.Value)
                        {
                            editTimeCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EDIT_TIME,
                                                              DatabaseCompareOperator.Equal, row[PARAMETERS_INPUT.FIELD_EDIT_TIME].ToString());
                        }
                        else
                        {
                            editTimeCondition = new Condition(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EDIT_TIME,
                                                              DatabaseCompareOperator.Null, string.Empty);
                        }

                        conditions.Add(editTimeCondition);

                        conditionsList.Add(conditions);
                    }

                    #endregion

                    EMS_EQUIPMENT_GROUPS_FIELDS equipmentGroupsFields = new EMS_EQUIPMENT_GROUPS_FIELDS();

                    List <string> sqlStringList = DatabaseTable.BuildUpdateSqlStatements(equipmentGroupsFields, equipmentGroupsDataTable, conditionsList);

                    string equipmentGroupKey  = string.Empty;
                    string equipmentGroupName = string.Empty;
                    string sqlString          = string.Empty;
                    string editTime           = string.Empty;

                    if (sqlStringList.Count > 0 && inputParamDataTable.Rows.Count > 0 && equipmentGroupsDataTable.Rows.Count > 0)
                    {
                        equipmentGroupKey = inputParamDataTable.Rows[0][PARAMETERS_INPUT.FIELD_KEY].ToString();

                        equipmentGroupName = equipmentGroupsDataTable.Rows[0][EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME].ToString();

                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Check Equipment Group Name

                                if (!string.IsNullOrEmpty(equipmentGroupName))
                                {
                                    Conditions conditions = new Conditions();

                                    conditions.Add(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME, DatabaseCompareOperator.Equal, equipmentGroupName);

                                    conditions.Add(DatabaseLogicOperator.And, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_KEY, DatabaseCompareOperator.NotEqual, equipmentGroupKey);

                                    string returnData = AllCommonFunctions.GetSpecifyTableColumnData(equipmentGroupsFields, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_NAME, conditions, transaction);

                                    if (!string.IsNullOrEmpty(returnData))
                                    {
                                        throw new Exception("${res:FanHai.Hemera.Modules.EMS.EquipmentGroups.M0001}");
                                    }
                                }

                                #endregion

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                {
                                    editTime = AllCommonFunctions.GetSpecifyTableColumnData(equipmentGroupsFields, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EDIT_TIME, EMS_EQUIPMENT_GROUPS_FIELDS.FIELD_EQUIPMENT_GROUP_KEY,
                                                                                            equipmentGroupKey, transaction);
                                }
                                else
                                {
                                    throw new Exception("${res:FanHai.Hemera.Module.Common.M0002}");
                                }

                                transaction.Commit();
                            }
                            catch (Exception ex)
                            {
                                LogService.LogError("UpdateEquipmentGroups Error: " + ex.Message);
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, string.Empty, editTime);
                }
                else
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, "${res:FanHai.Hemera.Module.Common.M0001}");
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(resDS, ex.Message);
                LogService.LogError("UpdateEquipmentGroups Error: " + ex.Message);
            }

            return(resDS);
        }
Beispiel #30
0
        /// <summary>
        /// 获取物料领用记录。
        /// </summary>
        /// <param name="dtParams">
        /// 包含查询条件的数据表对象。
        /// --------------------------------------
        /// {DO}{STORE_NAME}{OPERATION_NAME}{OPERATOR}{CHARG}{LLIEF}{MATNR}{MBLNR}{RECEIVE_TIME_START}{RECEIVE_TIME_END}
        /// --------------------------------------
        /// DO=Query
        /// ---------------------------------------
        /// DO=其他, 线上仓名称使用逗号分隔,store1,store1...
        /// --------------------------------------
        /// </param>
        /// <param name="pconfig">
        /// 分页查询的配置对象。
        /// </param>
        /// <returns>包含物料领用详细信息的数据集对象。</returns>
        public DataSet GetReceiveMaterialHistory(DataTable dtParams, ref PagingQueryConfig pconfig)
        {
            string  msg      = string.Empty;
            DataSet dsReturn = new DataSet();

            try
            {
                string sql = @"SELECT  W.SAP_ISSURE_KEY,
                                       W.MBLNR ,
                                       W.CHARG ,
                                       W.AUFNR ,
                                       W.PRO_ID,
                                       W.GRADE,
                                       W.EFFICIENCY,
                                       W.LLIEF ,
                                       W.SUPPLIER_CODE,
                                       W.ERFMG ,
                                       W.MATNR ,
                                       W.MATXT ,
                                       W.ERFME ,
                                       B.OPERATION_NAME ,
                                       B.STORE_NAME ,
                                       F.LOCATION_NAME,
                                       W.RECEIVE_TIME ,
                                       W.SHIFT_NAME ,
                                       W.OPERATOR,
                                       W.MEMO
                                 FROM WST_STORE_MATERIAL A
                                 INNER JOIN WST_STORE B ON A.STORE_KEY = B.STORE_KEY
                                 INNER JOIN POR_MATERIAL C ON A.MATERIAL_KEY = C.MATERIAL_KEY
                                 INNER JOIN WST_STORE_MATERIAL_DETAIL D ON A.STORE_MATERIAL_KEY = D.STORE_MATERIAL_KEY
                                 INNER JOIN WST_SAP_ISSURE W ON D.STORE_MATERIAL_DETAIL_KEY = W.STORE_MATERIAL_DETAIL_KEY
                                 INNER JOIN FMM_LOCATION F ON B.LOCATION_KEY = F.LOCATION_KEY 
                                 WHERE B.OBJECT_STATUS=1 ";
                //判断是查询还是LOAD
                string doName = Convert.ToString(dtParams.Rows[0]["DO"]).Trim();
                if (doName == "Query")
                {
                    //领料项目号不为空
                    string materialLot = Convert.ToString(dtParams.Rows[0]["CHARG"]).Trim();
                    if (!string.IsNullOrEmpty(materialLot))
                    {
                        sql += string.Format(" AND W.CHARG LIKE '{0}%'", materialLot.PreventSQLInjection());
                    }
                    //工单号
                    string orderNo = Convert.ToString(dtParams.Rows[0]["AUFNR"]).Trim();
                    if (!string.IsNullOrEmpty(orderNo))
                    {
                        sql += string.Format(" AND W.AUFNR ='{0}'", orderNo.PreventSQLInjection());
                    }
                    //产品号
                    string proId = Convert.ToString(dtParams.Rows[0]["PRO_ID"]).Trim();
                    if (!string.IsNullOrEmpty(proId))
                    {
                        sql += string.Format(" AND W.PRO_ID ='{0}'", proId.PreventSQLInjection());
                    }
                    //转换效率
                    string efficiency = Convert.ToString(dtParams.Rows[0]["EFFICIENCY"]).Trim();
                    if (!string.IsNullOrEmpty(efficiency))
                    {
                        sql += string.Format(" AND W.EFFICIENCY ='{0}'", efficiency.PreventSQLInjection());
                    }
                    //等级
                    string grade = Convert.ToString(dtParams.Rows[0]["GRADE"]).Trim();
                    if (!string.IsNullOrEmpty(grade))
                    {
                        sql += string.Format(" AND W.GRADE ='{0}'", grade.PreventSQLInjection());
                    }
                    //供应商名称
                    string supplierName = Convert.ToString(dtParams.Rows[0]["LLIEF"]).Trim();
                    if (!string.IsNullOrEmpty(grade))
                    {
                        sql += string.Format(" AND W.LLIEF ='{0}'", supplierName.PreventSQLInjection());
                    }
                    //线上仓名称
                    string storeName = Convert.ToString(dtParams.Rows[0]["STORE_NAME"]).Trim();
                    if (!string.IsNullOrEmpty(grade))
                    {
                        sql += string.Format(" AND B.STORE_NAME ='{0}'", storeName.PreventSQLInjection());
                    }
                    //最早发料时间不为空
                    string receiveStartTime = Convert.ToString(dtParams.Rows[0]["RECEIVE_TIME_START"]).Trim();
                    if (!string.IsNullOrEmpty(receiveStartTime))
                    {
                        sql += string.Format(" AND W.RECEIVE_TIME >='{0}'", receiveStartTime.PreventSQLInjection());
                    }
                    //最晚发料时间不为空
                    string receiveEndTime = Convert.ToString(dtParams.Rows[0]["RECEIVE_TIME_END"]).Trim() + " 23:59:59";
                    if (!string.IsNullOrEmpty(receiveEndTime))
                    {
                        sql += string.Format(" AND W.RECEIVE_TIME <= '{0}'", receiveEndTime.PreventSQLInjection());
                    }
                }
                else
                {
                    string storeName = Convert.ToString(dtParams.Rows[0]["STORE_NAME"]).Trim();
                    if (!string.IsNullOrEmpty(storeName))
                    {
                        string sStoreName = UtilHelper.BuilderWhereConditionString("B.STORE_NAME", storeName.Split(','));
                        sql += sStoreName;
                    }
                }
                if (pconfig == null)
                {
                    dsReturn = db.ExecuteDataSet(CommandType.Text, sql);
                }
                else
                {
                    int pages   = 0;
                    int records = 0;
                    AllCommonFunctions.CommonPagingData(sql, pconfig.PageNo, pconfig.PageSize, out pages,
                                                        out records, db, dsReturn, "STORE_MATERIAL");
                    pconfig.Pages   = pages;
                    pconfig.Records = records;
                }
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, msg);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, msg);
                LogService.LogError(string.Format("GetReceiveMaterialHistory Error:{0}", ex.Message));
            }
            return(dsReturn);
        }