/// <summary>
        /// 根据KeyId和日期保存数据
        /// </summary>
        /// <param name="organizationId">[分厂]组织机构ID</param>
        /// <param name="keyId">引领表KeyId</param>
        /// <param name="saveDate">保存日期</param>
        public static void SaveMonthBalanceDetailData(string myFactoryOrganizationId, DateTime saveDate)
        {
            string connectionString = ConnectionStringFactory.NXJCConnectionString;
            ISqlServerDataFactory dataFactory = new SqlServerDataFactory(connectionString);
            SingleBasicData singleBasicData = SingleBasicData.Creat();
            singleBasicData.Init(myFactoryOrganizationId, saveDate.ToString("yyyy-MM-dd"));
            singleBasicData.InitMonthlyData(saveDate);
            SingleTimeService singleTimeService = SingleTimeService.Creat();
            singleTimeService.Init(dataFactory);
            DataTable tzBalance = TzBalanceService.GetMonthyTzBalance();
            //电量(包括分摊电量,产线级别的电量带B的字段为加上分摊电量后的值)产量表
            DataTable electricityMaterialWeight = MonthlyService.GetElectricityQuantityMaterialWeight();

            string sql = @"SELECT A.VariableId,B.OrganizationID,(B.Name+A.VariableName) AS Name,A.ValueType,A.ValueFormula
                                    FROM balance_Energy_Template AS A,system_Organization AS B
                                    WHERE
                                    A.ProductionLineType=B.Type
                                    AND (A.ValueType='ElectricityConsumption'
                                    OR A.ValueType='CoalConsumption')
                                    AND A.Enabled='True'
                                    AND B.LevelCode like(select LevelCode from system_Organization where OrganizationID='{0}')+'%'";
            DataTable template = dataFactory.Query(string.Format(sql, singleBasicData.OrganizationId));
            string[] columns ={"TotalPeakValleyFlat", "MorePeak", "Peak", "Valley", "MoreValley", "Flat", "First", "Second", "Third", "TotalPeakValleyFlatB", "MorePeakB",
                "PeakB", "ValleyB", "MoreValleyB", "FlatB", "FirstB", "SecondB", "ThirdB"};
            DataTable consumptionTemp = EnergyConsumption.EnergyConsumptionCalculate.CalculateByOrganizationId(electricityMaterialWeight, template, "ValueFormula", columns);
            DataTable consumption = singleBasicData.BalanceTable.Clone();
            foreach (DataRow dr in consumptionTemp.Rows)
            {
                DataRow row = consumption.NewRow();
                row["VariableItemId"] = Guid.NewGuid().ToString();
                foreach (DataColumn item in consumptionTemp.Columns)
                {
                    string name = item.ColumnName;
                    if (name == "ValueFormula")
                        continue;
                    if (name == "Name")
                        row["VariableName"] = dr[name];
                    else
                        row[name] = dr[name];
                    row["PublicVariableId"] = row["KeyId"] = singleBasicData.MonthlyKeyId;
                }
                consumption.Rows.Add(row);
            }
            electricityMaterialWeight.Merge(consumption);

            int w = dataFactory.Save("tz_Balance", tzBalance);
            int n = dataFactory.Save("balance_Energy", electricityMaterialWeight);
        }
Example #2
0
        /// <summary>
        /// 保存停机原因
        /// </summary>
        public static void SaveMachineHaltReasons(DataTable data)
        {
            string connectionString = ConnectionStringFactory.NXJCConnectionString;

            ISqlServerDataFactory factory = new SqlServerDataFactory(connectionString);
            Delete delete = new Delete("system_MachineHaltReason");

            factory.Remove(delete);
            Query     query         = new Query("system_MachineHaltReason");
            DataTable m_ReasonTable = factory.Query(query);

            if (query != null)
            {
                data.Columns.Add("OrganizationID", typeof(string));
                foreach (DataColumn Column in m_ReasonTable.Columns)
                {
                    int m_ColumnIndex = Column.Ordinal;
                    data.Columns[Column.ColumnName].SetOrdinal(m_ColumnIndex);
                }
            }

            factory.Save("system_MachineHaltReason", data);
        }