/// <summary>
    /// 创建原因:根据子任务ID和监测项目ID返回当前项目的原始记录表基础数据
    /// 创建人:胡方扬
    /// 创建日期:2013-07-09
    /// </summary>
    /// <returns></returns>
    public string getBaseInfor()
    {
        TMisMonitorDustinforVo objDust = new TMisMonitorDustinforVo();

        objDust.SUBTASK_ID = strSubTask_Id;
        objDust.ITEM_ID    = strItem_Id;

        DataTable objDt  = new TMisMonitorDustinforLogic().SelectByTable(objDust);
        int       iCount = 0;

        if (objDt.Rows.Count > 0)
        {
            iCount = objDt.Rows.Count;
        }
        else
        {
            TMisMonitorResultVo objResultVo = new TMisMonitorResultVo();
            objResultVo.SAMPLE_ID = new TMisMonitorResultLogic().Details(strSubTask_Id).SAMPLE_ID;
            objResultVo.REMARK_5  = "Air";
            DataTable dtResult = new TMisMonitorResultLogic().SelectByTable(objResultVo);
            for (int i = 0; i < dtResult.Rows.Count; i++)
            {
                objDust            = new TMisMonitorDustinforVo();
                objDust.SUBTASK_ID = dtResult.Rows[i]["ID"].ToString();
                objDt = new TMisMonitorDustinforLogic().SelectByTable(objDust);
                if (objDt.Rows.Count > 0)
                {
                    break;
                }
            }
        }

        return(LigerGridDataToJson(objDt, iCount));
    }
Beispiel #2
0
    public static string DeleteDustInfor(string strResultID, string strItemID)
    {
        bool isSuccess = false;
        TMisMonitorDustinforVo objDustinforVo = new TMisMonitorDustinforVo();

        objDustinforVo.SUBTASK_ID = strResultID;
        objDustinforVo.ITEM_ID    = strItemID;
        isSuccess = new TMisMonitorDustinforLogic().Delete(objDustinforVo);

        return(isSuccess == true ? "1" : "0");
    }
Beispiel #3
0
    public string getDustInfor(string strSO2, string strNOX)
    {
        DataTable objDt = new TMisMonitorDustinforLogic().SelectByTable(new TMisMonitorDustinforVo {
            SUBTASK_ID = strSO2
        });

        if (objDt.Rows.Count == 0)
        {
            objDt = new TMisMonitorDustinforLogic().SelectByTable(new TMisMonitorDustinforVo {
                SUBTASK_ID = strNOX
            });
        }

        return(LigerGridDataToJson(objDt, objDt.Rows.Count));
    }
    /// <summary>
    /// 创建原因:根据子任务ID和监测项目ID返回当前项目的原始记录表基础数据
    /// 创建人:胡方扬
    /// 创建日期:2013-07-09
    /// </summary>
    /// <returns></returns>
    public string getBaseInfor()
    {
        TMisMonitorDustinforVo objDust = new TMisMonitorDustinforVo();

        objDust.SUBTASK_ID = strSubTask_Id;
        objDust.ITEM_ID    = strItem_Id;

        DataTable objDt  = new TMisMonitorDustinforLogic().SelectByTable(objDust);
        int       iCount = 0;

        if (objDt.Rows.Count > 0)
        {
            iCount = objDt.Rows.Count;
        }
        else
        {
            TMisMonitorResultVo objResultVo = new TMisMonitorResultVo();
            objResultVo.SAMPLE_ID = new TMisMonitorResultLogic().Details(strSubTask_Id).SAMPLE_ID;
            objResultVo.REMARK_5  = "Poll";
            DataTable dtResult = new TMisMonitorResultLogic().SelectByTable(objResultVo);
            //烟尘、粉尘、二氧化硫、氮氧化物、油烟:000001827,000001945  000000114,000000108 000000135
            DataRow[] drResult = dtResult.Select("ITEM_ID not in('000001827','000001945','000000114','000000108','000000135')");
            for (int i = 0; i < drResult.Length; i++)
            {
                objDust            = new TMisMonitorDustinforVo();
                objDust.SUBTASK_ID = drResult[i]["ID"].ToString();
                objDt = new TMisMonitorDustinforLogic().SelectByTable(objDust);
                if (objDt.Rows.Count > 0)
                {
                    break;
                }
            }
        }

        return(LigerGridDataToJson(objDt, iCount));
    }
Beispiel #5
0
    /// <summary>
    /// 获取监测项目信息
    /// </summary>
    /// <returns></returns>
    private string getFourGridInfo(string strThreeGridId)
    {
        string strSortname  = Request.Params["sortname"];
        string strSortorder = Request.Params["sortorder"];
        //当前页面
        int intPageIndex = Convert.ToInt32(Request.Params["page"]);
        //每页记录数
        int intPageSize = Convert.ToInt32(Request.Params["pagesize"]);

        DataTable dt = new TMisMonitorResultLogic().getItemInfoInAlloction_QHD(strThreeGridId, "'01','00'", "0", "", "", intPageIndex, intPageSize);

        //退回意见
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            TMisMonitorResultVo     objResutlVo     = new TMisMonitorResultLogic().Details(dt.Rows[i]["ID"].ToString());
            TMisMonitorSampleInfoVo objSampleInfoVo = new TMisMonitorSampleInfoLogic().Details(objResutlVo.SAMPLE_ID);
            TMisMonitorSubtaskVo    objSubtaskVo    = new TMisMonitorSubtaskLogic().Details(objSampleInfoVo.SUBTASK_ID);

            TMisReturnInfoVo objReturnInfoVo = new TMisReturnInfoVo();
            objReturnInfoVo.TASK_ID        = objSubtaskVo.TASK_ID;
            objReturnInfoVo.SUBTASK_ID     = objSubtaskVo.ID;
            objReturnInfoVo.RESULT_ID      = dt.Rows[i]["ID"].ToString();
            objReturnInfoVo.CURRENT_STATUS = SerialType.Monitor_007;
            objReturnInfoVo.BACKTO_STATUS  = SerialType.Monitor_006;
            objReturnInfoVo        = new TMisReturnInfoLogic().Details(objReturnInfoVo);
            dt.Rows[i]["REMARK_1"] = objReturnInfoVo.SUGGESTION;

            //获取原始记录表的采样编号
            DataTable dtInfo        = new DataTable();
            DataRow[] drInfo        = dtInfo.Select("1=2");
            string    strFiter_Code = "";
            TMisMonitorDustinforVo objDustinforVo = new TMisMonitorDustinforVo();
            objDustinforVo.SUBTASK_ID = dt.Rows[i]["ID"].ToString();
            objDustinforVo            = new TMisMonitorDustinforLogic().Details(objDustinforVo);
            if (objDustinforVo.ID.Length > 0)
            {
                TMisMonitorDustattributeVo objDustattributeVo = new TMisMonitorDustattributeVo();
                objDustattributeVo.BASEINFOR_ID = objDustinforVo.ID;
                dtInfo = new TMisMonitorDustattributeLogic().SelectByTable(objDustattributeVo);
                if (dtInfo.Rows.Count > 0)
                {
                    drInfo = dtInfo.Select("FITER_CODE<>'平均'");
                }
                else
                {
                    TMisMonitorDustattributeSo2ornoxVo objDustattributeSo2ornoxVo = new TMisMonitorDustattributeSo2ornoxVo();
                    objDustattributeSo2ornoxVo.BASEINFOR_ID = objDustinforVo.ID;
                    dtInfo = new TMisMonitorDustattributeSo2ornoxLogic().SelectByTable(objDustattributeSo2ornoxVo);
                    if (dtInfo.Rows.Count > 0)
                    {
                        drInfo = dtInfo.Select("FITER_CODE<>'平均'");
                    }
                    else
                    {
                        TMisMonitorDustattributePmVo DustattributePmVo = new TMisMonitorDustattributePmVo();
                        DustattributePmVo.BASEINFOR_ID = objDustinforVo.ID;
                        dtInfo = new TMisMonitorDustattributePmLogic().SelectByTable(DustattributePmVo);
                        if (dtInfo.Rows.Count > 0)
                        {
                            drInfo = dtInfo.Select("FITER_CODE<>'平均'");
                        }
                    }
                }
                for (int j = 0; j < drInfo.Length; j++)
                {
                    strFiter_Code += drInfo[j]["FITER_CODE"].ToString() + ",";
                }
                dt.Rows[i]["REMARK_2"] = strFiter_Code.TrimEnd(',');
            }
        }

        int    intTotalCount = new TMisMonitorResultLogic().getItemInfoCountInAlloction_QHD(strThreeGridId, "'01','00'", "0", "", "");
        string strJson       = CreateToJson(dt, intTotalCount);

        return(strJson);
    }
Beispiel #6
0
    public string CheckDustyTable(string strSumResultId)
    {
        bool      isSuccess   = true;
        DataTable dtDustinfor = new TMisMonitorDustinforLogic().SelectTableByID(strSumResultId);

        DataRow[] drDustinfor;

        //如果是烟尘,粉尘,总悬浮颗粒物,颗粒物(000001827,000001945,000000130,000000220)初重、终重、重量 不能为空
        drDustinfor = dtDustinfor.Select("ITEM_ID in('000001827','000001945','000000130','000000220')");
        for (int i = 0; i < drDustinfor.Length; i++)
        {
            TMisMonitorDustattributeVo objDustattribute = new TMisMonitorDustattributeVo();
            objDustattribute.BASEINFOR_ID = drDustinfor[i]["ID"].ToString();
            DataTable dt = new TMisMonitorDustattributeLogic().SelectByTable(objDustattribute);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (dt.Rows[j]["FITER_BEGIN_WEIGHT"].ToString().Length == 0 && dt.Rows[j]["SAMPLE_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
                if (dt.Rows[j]["FITER_AFTER_WEIGHT"].ToString().Length == 0 && dt.Rows[j]["SAMPLE_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
                if (dt.Rows[j]["SAMPLE_WEIGHT"].ToString().Length == 0 && dt.Rows[j]["SAMPLE_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
            }

            TMisMonitorDustattributePmVo objDustattributePm = new TMisMonitorDustattributePmVo();
            objDustattributePm.BASEINFOR_ID = drDustinfor[i]["ID"].ToString();
            dt = new TMisMonitorDustattributePmLogic().SelectByTable(objDustattributePm);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (dt.Rows[j]["SAMPLE_FWEIGHT"].ToString().Length == 0 && dt.Rows[j]["FITER_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
                if (dt.Rows[j]["SAMPLE_EWEIGHT"].ToString().Length == 0 && dt.Rows[j]["FITER_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
                if (dt.Rows[j]["SAMPLE_WEIGHT"].ToString().Length == 0 && dt.Rows[j]["FITER_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
            }
        }
        drDustinfor = dtDustinfor.Select("ITEM_ID not in('000001827','000001945','000000130','000000220')");
        for (int i = 0; i < drDustinfor.Length; i++)
        {
            TMisMonitorDustattributeVo objDustattribute = new TMisMonitorDustattributeVo();
            objDustattribute.BASEINFOR_ID = drDustinfor[i]["ID"].ToString();
            DataTable dt = new TMisMonitorDustattributeLogic().SelectByTable(objDustattribute);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (dt.Rows[j]["SMOKE_POTENCY"].ToString().Length == 0 && dt.Rows[j]["SAMPLE_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
            }

            TMisMonitorDustattributePmVo objDustattributePm = new TMisMonitorDustattributePmVo();
            objDustattributePm.BASEINFOR_ID = drDustinfor[i]["ID"].ToString();
            dt = new TMisMonitorDustattributePmLogic().SelectByTable(objDustattributePm);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (dt.Rows[j]["SAMPLE_CONCENT"].ToString().Length == 0 && dt.Rows[j]["FITER_CODE"].ToString() != "平均")
                {
                    isSuccess = false;
                    break;
                }
            }
        }

        return(isSuccess == true ? "1" : "0");
    }
    /// <summary>
    /// 创建原因:计算原始记录表的平均数据
    /// 创建人:魏林
    /// 创建时间:2014-04-16
    /// </summary>
    /// <returns></returns>
    public string AvgAttInfor()
    {
        Regex   r              = new Regex("^\\d+(\\.)?\\d*$");
        bool    iSuccess       = true;
        decimal SAMPLE_CONCENT = 0;
        decimal FQPFL          = 0;
        int     iPRECISION     = 0;

        if (!String.IsNullOrEmpty(strBaseInfor_Id))
        {
            TMisMonitorDustattributePmVo objDustAtt = new TMisMonitorDustattributePmVo();
            objDustAtt.BASEINFOR_ID = strBaseInfor_Id;
            objDustAtt.SORT_FIELD   = "ID";
            DataTable dt = new TMisMonitorDustattributePmLogic().SelectByTable(objDustAtt);
            if (dt.Rows.Count > 0)
            {
                iPRECISION = dt.Rows[0]["SAMPLE_CONCENT"].ToString().Contains('.') ? dt.Rows[0]["SAMPLE_CONCENT"].ToString().Split('.')[1].Length : 0;
            }

            if (dt.Rows[dt.Rows.Count - 1]["FITER_CODE"].ToString() == "平均")
            {
                objDustAtt.SORT_FIELD = "";
                objDustAtt.ID         = dt.Rows[dt.Rows.Count - 1]["ID"].ToString();
                for (int i = 0; i < dt.Rows.Count - 1; i++)
                {
                    if (r.IsMatch(dt.Rows[i]["SAMPLE_CONCENT"].ToString()))
                    {
                        SAMPLE_CONCENT += decimal.Parse(dt.Rows[i]["SAMPLE_CONCENT"].ToString());
                    }
                    else
                    {
                        SAMPLE_CONCENT += GetNumber(dt.Rows[i]["SAMPLE_CONCENT"].ToString()) / 2;
                    }

                    FQPFL += r.IsMatch(dt.Rows[i]["FQPFL"].ToString()) ? decimal.Parse(dt.Rows[i]["FQPFL"].ToString()) : GetNumber(dt.Rows[i]["FQPFL"].ToString());
                }
                objDustAtt.SAMPLE_CONCENT = Math.Round(SAMPLE_CONCENT / (dt.Rows.Count - 1), iPRECISION).ToString();
                objDustAtt.FQPFL          = Math.Round(FQPFL / (dt.Rows.Count - 1), 0).ToString();

                iSuccess = new TMisMonitorDustattributePmLogic().Edit(objDustAtt);
            }
            else
            {
                objDustAtt.SORT_FIELD = "";
                objDustAtt.ID         = GetSerialNumber("t_mis_dutyAttPMInforID");
                objDustAtt.FITER_CODE = "平均";
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (r.IsMatch(dt.Rows[i]["SAMPLE_CONCENT"].ToString()))
                    {
                        SAMPLE_CONCENT += decimal.Parse(dt.Rows[i]["SAMPLE_CONCENT"].ToString());
                    }
                    else
                    {
                        SAMPLE_CONCENT += GetNumber(dt.Rows[i]["SAMPLE_CONCENT"].ToString()) / 2;
                    }

                    FQPFL += r.IsMatch(dt.Rows[i]["FQPFL"].ToString()) ? decimal.Parse(dt.Rows[i]["FQPFL"].ToString()) : GetNumber(dt.Rows[i]["FQPFL"].ToString());
                }
                objDustAtt.SAMPLE_CONCENT = Math.Round(SAMPLE_CONCENT / dt.Rows.Count, iPRECISION).ToString();
                objDustAtt.FQPFL          = Math.Round(FQPFL / dt.Rows.Count, 0).ToString();

                iSuccess = new TMisMonitorDustattributePmLogic().Create(objDustAtt);
            }
            //更新结果表
            TMisMonitorDustinforVo objDustinforVo = new TMisMonitorDustinforLogic().Details(strBaseInfor_Id);
            TMisMonitorResultVo    objResultVo    = new TMisMonitorResultLogic().Details(objDustinforVo.SUBTASK_ID);
            objResultVo.ITEM_RESULT = objDustAtt.SAMPLE_CONCENT;
            iSuccess = new TMisMonitorResultLogic().Edit(objResultVo);
        }
        return(iSuccess ? "1" : "0");
    }
Beispiel #8
0
    /// <summary>
    /// 创建原因:根据指定监测项目属性ID 更新指定列的数据
    /// 创建人:胡方扬
    /// 创建时间:2013-07-09
    /// </summary>
    /// <returns></returns>
    public bool UpdateAttValue()
    {
        bool blFlag = false;

        if (!String.IsNullOrEmpty(strAttInfor_Id) && !String.IsNullOrEmpty(strUpdateCell))
        {
            blFlag = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, strUpdateCell, strUpdateCellValue);

            Regex r = new Regex("^\\d+(\\.)?\\d*$");
            TMisMonitorDustattributeVo DustattributeVo = new TMisMonitorDustattributeVo();
            DustattributeVo = new TMisMonitorDustattributeLogic().Details(strAttInfor_Id);
            if (blFlag)
            {
                switch (strUpdateCell)
                {
                case "FITER_BEGIN_WEIGHT":       //初重
                case "FITER_AFTER_WEIGHT":       //终重
                    //计算样品重量:终重-初重
                    decimal dWEIGHT_BEGIN = r.IsMatch(DustattributeVo.FITER_BEGIN_WEIGHT) ? decimal.Parse(DustattributeVo.FITER_BEGIN_WEIGHT) : 0;
                    decimal dWEIGHT_END   = r.IsMatch(DustattributeVo.FITER_AFTER_WEIGHT) ? decimal.Parse(DustattributeVo.FITER_AFTER_WEIGHT) : 0;
                    decimal dWEIGHT       = Math.Abs(dWEIGHT_END - dWEIGHT_BEGIN);
                    blFlag = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SAMPLE_WEIGHT", dWEIGHT.ToString());
                    //计算烟尘浓度:(样品重量/标况体积)*1000000
                    decimal dL_STAND = r.IsMatch(DustattributeVo.L_STAND) ? decimal.Parse(DustattributeVo.L_STAND) : 0;
                    decimal dPOTENCY = 0;
                    if (dL_STAND != 0)
                    {
                        dPOTENCY = (dWEIGHT / dL_STAND) * 1000000;
                        blFlag   = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_POTENCY", Math.Round(dPOTENCY, 0).ToString());
                    }
                    //计算烟尘折算浓度:((21/(21-烟气含氧量))*烟尘浓度)/折算系数
                    decimal dOXYGEN = r.IsMatch(DustattributeVo.SMOKE_OXYGEN) ? decimal.Parse(DustattributeVo.SMOKE_OXYGEN) : 0;
                    TMisMonitorDustinforVo DustinforVo = new TMisMonitorDustinforLogic().Details(DustattributeVo.BASEINFOR_ID);
                    decimal dMODUL_NUM = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    decimal dPOTENCY2  = 0;
                    if (dMODUL_NUM != 0)
                    {
                        dPOTENCY2 = ((21 / (21 - dOXYGEN)) * dPOTENCY) / dMODUL_NUM;
                        blFlag    = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_POTENCY2", Math.Round(dPOTENCY2, 0).ToString());
                    }
                    //计算烟尘排放量:(烟尘浓度*标态流量)/1000000
                    decimal dSPEED = r.IsMatch(DustattributeVo.NM_SPEED) ? decimal.Parse(DustattributeVo.NM_SPEED) : 0;
                    blFlag = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_DISCHARGE", Math.Round((dPOTENCY * dSPEED) / 1000000, 3).ToString());
                    break;

                case "SAMPLE_WEIGHT":            //样品重量
                    //计算烟尘浓度:(样品重量/标况体积)*1000000
                    dL_STAND = r.IsMatch(DustattributeVo.L_STAND) ? decimal.Parse(DustattributeVo.L_STAND) : 0;
                    dWEIGHT  = r.IsMatch(DustattributeVo.SAMPLE_WEIGHT) ? decimal.Parse(DustattributeVo.SAMPLE_WEIGHT) : 0;
                    dPOTENCY = 0;
                    if (dL_STAND != 0)
                    {
                        dPOTENCY = (dWEIGHT / dL_STAND) * 1000000;
                        blFlag   = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_POTENCY", Math.Round(dPOTENCY, 0).ToString());
                    }
                    //计算烟尘折算浓度:((21/(21-烟气含氧量))*烟尘浓度)/折算系数
                    dOXYGEN     = r.IsMatch(DustattributeVo.SMOKE_OXYGEN) ? decimal.Parse(DustattributeVo.SMOKE_OXYGEN) : 0;
                    DustinforVo = new TMisMonitorDustinforLogic().Details(DustattributeVo.BASEINFOR_ID);
                    dMODUL_NUM  = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    dPOTENCY2   = 0;
                    if (dMODUL_NUM != 0)
                    {
                        dPOTENCY2 = ((21 / (21 - dOXYGEN)) * dPOTENCY) / dMODUL_NUM;
                        blFlag    = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_POTENCY2", Math.Round(dPOTENCY2, 0).ToString());
                    }
                    //计算烟尘排放量:(烟尘浓度*标态流量)/1000000
                    dSPEED = r.IsMatch(DustattributeVo.NM_SPEED) ? decimal.Parse(DustattributeVo.NM_SPEED) : 0;
                    blFlag = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_DISCHARGE", Math.Round((dPOTENCY * dSPEED) / 1000000, 3).ToString());
                    break;

                case "SMOKE_POTENCY":            //烟尘浓度
                    //计算烟尘折算浓度:((21/(21-烟气含氧量))*烟尘浓度)/折算系数
                    dPOTENCY    = r.IsMatch(DustattributeVo.SMOKE_POTENCY) ? decimal.Parse(DustattributeVo.SMOKE_POTENCY) : 0;
                    dOXYGEN     = r.IsMatch(DustattributeVo.SMOKE_OXYGEN) ? decimal.Parse(DustattributeVo.SMOKE_OXYGEN) : 0;
                    DustinforVo = new TMisMonitorDustinforLogic().Details(DustattributeVo.BASEINFOR_ID);
                    dMODUL_NUM  = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    dPOTENCY2   = 0;
                    if (dMODUL_NUM != 0)
                    {
                        dPOTENCY2 = ((21 / (21 - dOXYGEN)) * dPOTENCY) / dMODUL_NUM;
                        blFlag    = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_POTENCY2", Math.Round(dPOTENCY2, 0).ToString());
                    }
                    else
                    {
                        if (DustattributeVo.SAMPLE_CODE == "平均")
                        {
                            //更新结果表
                            TMisMonitorResultVo objResultVo = new TMisMonitorResultVo();
                            objResultVo.ID          = DustinforVo.SUBTASK_ID;
                            objResultVo.ITEM_RESULT = strUpdateCellValue;
                            blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                        }
                    }
                    //计算烟尘排放量:(烟尘浓度*标态流量)/1000000
                    dSPEED = r.IsMatch(DustattributeVo.NM_SPEED) ? decimal.Parse(DustattributeVo.NM_SPEED) : 0;
                    blFlag = new TMisMonitorDustattributeLogic().UpdateCell(strAttInfor_Id, "SMOKE_DISCHARGE", Math.Round((dPOTENCY * dSPEED) / 1000000, 3).ToString());
                    break;

                case "SMOKE_POTENCY2":
                    DustinforVo = new TMisMonitorDustinforLogic().Details(DustattributeVo.BASEINFOR_ID);
                    dMODUL_NUM  = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    if (dMODUL_NUM != 0 && DustattributeVo.SAMPLE_CODE == "平均")
                    {
                        //更新结果表
                        TMisMonitorResultVo objResultVo = new TMisMonitorResultVo();
                        objResultVo.ID          = DustinforVo.SUBTASK_ID;
                        objResultVo.ITEM_RESULT = strUpdateCellValue;
                        blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                    }
                    break;

                default:
                    break;
                }
            }
        }
        return(blFlag);
    }
Beispiel #9
0
    /// <summary>
    /// 创建原因:计算原始记录表的平均数据
    /// 创建人:魏林
    /// 创建时间:2014-04-16
    /// </summary>
    /// <returns></returns>
    public string AvgAttInfor()
    {
        Regex   r = new Regex("^\\d+(\\.)?\\d*$");
        bool    iSuccess = true;
        decimal SMOKE_TEMPERATURE = 0, SMOKE_OXYGEN = 0, SMOKE_SPEED = 0, NM_SPEED = 0, L_STAND = 0;
        decimal SMOKE_POTENCY = 0, SMOKE_POTENCY2 = 0, SMOKE_DISCHARGE = 0;
        decimal SMOKE_TEMPERATURE_COut = 0, SMOKE_OXYGEN_COut = 0, SMOKE_SPEED_COut = 0, NM_SPEED_COut = 0, L_STAND_COut = 0, SMOKE_POTENCY_COut = 0, SMOKE_POTENCY2_COut = 0, SMOKE_DISCHARGE_COut = 0;
        int     iPRECISION = 0; //平均值的小数位位数

        if (!String.IsNullOrEmpty(strBaseInfor_Id))
        {
            TMisMonitorDustattributeVo objDustAtt = new TMisMonitorDustattributeVo();
            objDustAtt.BASEINFOR_ID = strBaseInfor_Id;
            objDustAtt.SORT_FIELD   = "ID";
            DataTable dt = new TMisMonitorDustattributeLogic().SelectByTable(objDustAtt);
            if (dt.Rows[dt.Rows.Count - 1]["SAMPLE_CODE"].ToString() == "平均")
            {
                objDustAtt.SORT_FIELD = "";
                objDustAtt.ID         = dt.Rows[dt.Rows.Count - 1]["ID"].ToString();
                for (int i = 0; i < dt.Rows.Count - 1; i++)
                {
                    if (r.IsMatch(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString()))
                    {
                        SMOKE_TEMPERATURE += decimal.Parse(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString());
                    }
                    else
                    {
                        SMOKE_TEMPERATURE_COut = GetNumber(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString());
                        SMOKE_TEMPERATURE     += SMOKE_TEMPERATURE_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_OXYGEN"].ToString()))
                    {
                        SMOKE_OXYGEN += decimal.Parse(dt.Rows[i]["SMOKE_OXYGEN"].ToString());
                    }
                    else
                    {
                        SMOKE_OXYGEN_COut = GetNumber(dt.Rows[i]["SMOKE_OXYGEN"].ToString());
                        SMOKE_OXYGEN     += SMOKE_OXYGEN_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_SPEED"].ToString()))
                    {
                        SMOKE_SPEED += decimal.Parse(dt.Rows[i]["SMOKE_SPEED"].ToString());
                    }
                    else
                    {
                        SMOKE_SPEED_COut = GetNumber(dt.Rows[i]["SMOKE_SPEED"].ToString());
                        SMOKE_SPEED     += SMOKE_SPEED_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["NM_SPEED"].ToString()))
                    {
                        NM_SPEED += decimal.Parse(dt.Rows[i]["NM_SPEED"].ToString());
                    }
                    else
                    {
                        NM_SPEED_COut = GetNumber(dt.Rows[i]["NM_SPEED"].ToString());
                        NM_SPEED     += NM_SPEED_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["L_STAND"].ToString()))
                    {
                        L_STAND += decimal.Parse(dt.Rows[i]["L_STAND"].ToString());
                    }
                    else
                    {
                        L_STAND_COut = GetNumber(dt.Rows[i]["L_STAND"].ToString());
                        L_STAND     += L_STAND_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_POTENCY"].ToString()))
                    {
                        SMOKE_POTENCY += decimal.Parse(dt.Rows[i]["SMOKE_POTENCY"].ToString());
                    }
                    else
                    {
                        SMOKE_POTENCY_COut = GetNumber(dt.Rows[i]["SMOKE_POTENCY"].ToString());
                        SMOKE_POTENCY     += SMOKE_POTENCY_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_POTENCY2"].ToString()))
                    {
                        SMOKE_POTENCY2 += decimal.Parse(dt.Rows[i]["SMOKE_POTENCY2"].ToString());
                    }
                    else
                    {
                        SMOKE_POTENCY2_COut = GetNumber(dt.Rows[i]["SMOKE_POTENCY2"].ToString());
                        SMOKE_POTENCY2     += SMOKE_POTENCY2_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_DISCHARGE"].ToString()))
                    {
                        SMOKE_DISCHARGE += decimal.Parse(dt.Rows[i]["SMOKE_DISCHARGE"].ToString());
                    }
                    else
                    {
                        SMOKE_DISCHARGE_COut = GetNumber(dt.Rows[i]["SMOKE_DISCHARGE"].ToString());
                        SMOKE_DISCHARGE     += SMOKE_DISCHARGE_COut / 2;
                    }
                }
                iPRECISION = dt.Rows[0]["SMOKE_TEMPERATURE"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_TEMPERATURE"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_TEMPERATURE_COut != 0 && Math.Round(SMOKE_TEMPERATURE / (dt.Rows.Count - 1), iPRECISION) < SMOKE_TEMPERATURE_COut)
                {
                    objDustAtt.SMOKE_TEMPERATURE = SMOKE_TEMPERATURE_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_TEMPERATURE = Math.Round(SMOKE_TEMPERATURE / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_OXYGEN"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_OXYGEN"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_OXYGEN_COut != 0 && Math.Round(SMOKE_OXYGEN / (dt.Rows.Count - 1), iPRECISION) < SMOKE_OXYGEN_COut)
                {
                    objDustAtt.SMOKE_OXYGEN = SMOKE_OXYGEN_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_OXYGEN = Math.Round(SMOKE_OXYGEN / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_SPEED"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_SPEED"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_SPEED_COut != 0 && Math.Round(SMOKE_SPEED / (dt.Rows.Count - 1), iPRECISION) < SMOKE_SPEED_COut)
                {
                    objDustAtt.SMOKE_SPEED = SMOKE_SPEED_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_SPEED = Math.Round(SMOKE_SPEED / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["NM_SPEED"].ToString().Contains('.') ? dt.Rows[0]["NM_SPEED"].ToString().Split('.')[1].Length : 0;
                if (NM_SPEED_COut != 0 && Math.Round(NM_SPEED / (dt.Rows.Count - 1), iPRECISION) < NM_SPEED_COut)
                {
                    objDustAtt.NM_SPEED = NM_SPEED_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.NM_SPEED = Math.Round(NM_SPEED / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["L_STAND"].ToString().Contains('.') ? dt.Rows[0]["L_STAND"].ToString().Split('.')[1].Length : 0;
                if (L_STAND_COut != 0 && Math.Round(L_STAND / (dt.Rows.Count - 1), iPRECISION) < L_STAND_COut)
                {
                    objDustAtt.L_STAND = L_STAND_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.L_STAND = Math.Round(L_STAND / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_POTENCY"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_POTENCY_COut != 0 && Math.Round(SMOKE_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SMOKE_POTENCY_COut)
                {
                    objDustAtt.SMOKE_POTENCY = SMOKE_POTENCY_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_POTENCY = Math.Round(SMOKE_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_POTENCY2"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_POTENCY2"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_POTENCY2_COut != 0 && Math.Round(SMOKE_POTENCY2 / (dt.Rows.Count - 1), iPRECISION) < SMOKE_POTENCY2_COut)
                {
                    objDustAtt.SMOKE_POTENCY2 = SMOKE_POTENCY2_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_POTENCY2 = Math.Round(SMOKE_POTENCY2 / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_DISCHARGE"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_DISCHARGE_COut != 0 && Math.Round(SMOKE_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < SMOKE_DISCHARGE_COut)
                {
                    objDustAtt.SMOKE_DISCHARGE = SMOKE_DISCHARGE_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_DISCHARGE = Math.Round(SMOKE_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iSuccess = new TMisMonitorDustattributeLogic().Edit(objDustAtt);
            }
            else
            {
                objDustAtt.SORT_FIELD  = "";
                objDustAtt.ID          = GetSerialNumber("t_mis_dutyAttInforID");
                objDustAtt.SAMPLE_CODE = "平均";
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (r.IsMatch(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString()))
                    {
                        SMOKE_TEMPERATURE += decimal.Parse(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString());
                    }
                    else
                    {
                        SMOKE_TEMPERATURE_COut = GetNumber(dt.Rows[i]["SMOKE_TEMPERATURE"].ToString());
                        SMOKE_TEMPERATURE     += SMOKE_TEMPERATURE_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_OXYGEN"].ToString()))
                    {
                        SMOKE_OXYGEN += decimal.Parse(dt.Rows[i]["SMOKE_OXYGEN"].ToString());
                    }
                    else
                    {
                        SMOKE_OXYGEN_COut = GetNumber(dt.Rows[i]["SMOKE_OXYGEN"].ToString());
                        SMOKE_OXYGEN     += SMOKE_OXYGEN_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_SPEED"].ToString()))
                    {
                        SMOKE_SPEED += decimal.Parse(dt.Rows[i]["SMOKE_SPEED"].ToString());
                    }
                    else
                    {
                        SMOKE_SPEED_COut = GetNumber(dt.Rows[i]["SMOKE_SPEED"].ToString());
                        SMOKE_SPEED     += SMOKE_SPEED_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["NM_SPEED"].ToString()))
                    {
                        NM_SPEED += decimal.Parse(dt.Rows[i]["NM_SPEED"].ToString());
                    }
                    else
                    {
                        NM_SPEED_COut = GetNumber(dt.Rows[i]["NM_SPEED"].ToString());
                        NM_SPEED     += NM_SPEED_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["L_STAND"].ToString()))
                    {
                        L_STAND += decimal.Parse(dt.Rows[i]["L_STAND"].ToString());
                    }
                    else
                    {
                        L_STAND_COut = GetNumber(dt.Rows[i]["L_STAND"].ToString());
                        L_STAND     += L_STAND_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_POTENCY"].ToString()))
                    {
                        SMOKE_POTENCY += decimal.Parse(dt.Rows[i]["SMOKE_POTENCY"].ToString());
                    }
                    else
                    {
                        SMOKE_POTENCY_COut = GetNumber(dt.Rows[i]["SMOKE_POTENCY"].ToString());
                        SMOKE_POTENCY     += SMOKE_POTENCY_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_POTENCY2"].ToString()))
                    {
                        SMOKE_POTENCY2 += decimal.Parse(dt.Rows[i]["SMOKE_POTENCY2"].ToString());
                    }
                    else
                    {
                        SMOKE_POTENCY2_COut = GetNumber(dt.Rows[i]["SMOKE_POTENCY2"].ToString());
                        SMOKE_POTENCY2     += SMOKE_POTENCY2_COut / 2;
                    }

                    if (r.IsMatch(dt.Rows[i]["SMOKE_DISCHARGE"].ToString()))
                    {
                        SMOKE_DISCHARGE += decimal.Parse(dt.Rows[i]["SMOKE_DISCHARGE"].ToString());
                    }
                    else
                    {
                        SMOKE_DISCHARGE_COut = GetNumber(dt.Rows[i]["SMOKE_DISCHARGE"].ToString());
                        SMOKE_DISCHARGE     += SMOKE_DISCHARGE_COut / 2;
                    }
                }
                iPRECISION = dt.Rows[0]["SMOKE_TEMPERATURE"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_TEMPERATURE"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_TEMPERATURE_COut != 0 && Math.Round(SMOKE_TEMPERATURE / (dt.Rows.Count - 1), iPRECISION) < SMOKE_TEMPERATURE_COut)
                {
                    objDustAtt.SMOKE_TEMPERATURE = SMOKE_TEMPERATURE_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_TEMPERATURE = Math.Round(SMOKE_TEMPERATURE / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_OXYGEN"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_OXYGEN"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_OXYGEN_COut != 0 && Math.Round(SMOKE_OXYGEN / (dt.Rows.Count - 1), iPRECISION) < SMOKE_OXYGEN_COut)
                {
                    objDustAtt.SMOKE_OXYGEN = SMOKE_OXYGEN_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_OXYGEN = Math.Round(SMOKE_OXYGEN / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_SPEED"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_SPEED"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_SPEED_COut != 0 && Math.Round(SMOKE_SPEED / (dt.Rows.Count - 1), iPRECISION) < SMOKE_SPEED_COut)
                {
                    objDustAtt.SMOKE_SPEED = SMOKE_SPEED_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_SPEED = Math.Round(SMOKE_SPEED / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["NM_SPEED"].ToString().Contains('.') ? dt.Rows[0]["NM_SPEED"].ToString().Split('.')[1].Length : 0;
                if (NM_SPEED_COut != 0 && Math.Round(NM_SPEED / (dt.Rows.Count - 1), iPRECISION) < NM_SPEED_COut)
                {
                    objDustAtt.NM_SPEED = NM_SPEED_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.NM_SPEED = Math.Round(NM_SPEED / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["L_STAND"].ToString().Contains('.') ? dt.Rows[0]["L_STAND"].ToString().Split('.')[1].Length : 0;
                if (L_STAND_COut != 0 && Math.Round(L_STAND / (dt.Rows.Count - 1), iPRECISION) < L_STAND_COut)
                {
                    objDustAtt.L_STAND = L_STAND_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.L_STAND = Math.Round(L_STAND / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_POTENCY"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_POTENCY_COut != 0 && Math.Round(SMOKE_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SMOKE_POTENCY_COut)
                {
                    objDustAtt.SMOKE_POTENCY = SMOKE_POTENCY_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_POTENCY = Math.Round(SMOKE_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_POTENCY2"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_POTENCY2"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_POTENCY2_COut != 0 && Math.Round(SMOKE_POTENCY2 / (dt.Rows.Count - 1), iPRECISION) < SMOKE_POTENCY2_COut)
                {
                    objDustAtt.SMOKE_POTENCY2 = SMOKE_POTENCY2_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_POTENCY2 = Math.Round(SMOKE_POTENCY2 / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iPRECISION = dt.Rows[0]["SMOKE_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["SMOKE_DISCHARGE"].ToString().Split('.')[1].Length : 0;
                if (SMOKE_DISCHARGE_COut != 0 && Math.Round(SMOKE_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < SMOKE_DISCHARGE_COut)
                {
                    objDustAtt.SMOKE_DISCHARGE = SMOKE_DISCHARGE_COut.ToString() + "(L)";
                }
                else
                {
                    objDustAtt.SMOKE_DISCHARGE = Math.Round(SMOKE_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString();
                }

                iSuccess = new TMisMonitorDustattributeLogic().Create(objDustAtt);
            }

            //更新结果表
            TMisMonitorDustinforVo objDustinforVo = new TMisMonitorDustinforLogic().Details(strBaseInfor_Id);
            TMisMonitorResultVo    objResultVo    = new TMisMonitorResultLogic().Details(objDustinforVo.SUBTASK_ID);
            if (objDustinforVo.MODUL_NUM.Length > 0)
            {
                objResultVo.ITEM_RESULT = objDustAtt.SMOKE_POTENCY2;
            }
            else
            {
                objResultVo.ITEM_RESULT = objDustAtt.SMOKE_POTENCY;
            }
            iSuccess = new TMisMonitorResultLogic().Edit(objResultVo);
        }
        return(iSuccess ? "1" : "0");
    }
    /// <summary>
    /// 创建原因:根据指定监测项目属性ID 更新指定列的数据
    /// 创建人:胡方扬
    /// 创建时间:2013-07-09
    /// </summary>
    /// <returns></returns>
    public bool UpdateAttValue()
    {
        bool blFlag = false;

        if (!String.IsNullOrEmpty(strAttInfor_Id) && !String.IsNullOrEmpty(strUpdateCell))
        {
            blFlag = new TMisMonitorDustattributeSo2ornoxLogic().UpdateCell(strAttInfor_Id, strUpdateCell, strUpdateCellValue);

            Regex r = new Regex("^\\d+(\\.)?\\d*$");
            TMisMonitorDustattributeSo2ornoxVo So2ornoxVo = new TMisMonitorDustattributeSo2ornoxVo();
            So2ornoxVo = new TMisMonitorDustattributeSo2ornoxLogic().Details(strAttInfor_Id);
            if (blFlag)
            {
                switch (strUpdateCell)
                {
                case "SO2_POTENCY":            //SO2浓度
                    //计算SO2折算浓度:((21/(21-含氧量))*SO2浓度)/折算系数
                    decimal dPOTENCY = r.IsMatch(So2ornoxVo.SO2_POTENCY) ? decimal.Parse(So2ornoxVo.SO2_POTENCY) : 0;
                    decimal dOXYGEN  = r.IsMatch(So2ornoxVo.SMOKE_OXYGEN) ? decimal.Parse(So2ornoxVo.SMOKE_OXYGEN) : 0;
                    TMisMonitorDustinforVo DustinforVo = new TMisMonitorDustinforLogic().Details(So2ornoxVo.BASEINFOR_ID);
                    decimal dMODUL_NUM   = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    decimal dPER_POTENCY = 0;
                    if (dMODUL_NUM != 0)
                    {
                        dPER_POTENCY = ((21 / (21 - dOXYGEN)) * dPOTENCY) / dMODUL_NUM;
                        blFlag       = new TMisMonitorDustattributeSo2ornoxLogic().UpdateCell(strAttInfor_Id, "SO2_PER_POTENCY", Math.Round(dPER_POTENCY, 0).ToString());
                    }
                    else
                    {
                        if (So2ornoxVo.SAMPLE_CODE == "平均")
                        {
                            //更新结果表
                            TMisMonitorResultVo objResultVo = new TMisMonitorResultLogic().Details(DustinforVo.SUBTASK_ID);
                            DataTable           dt          = new TMisMonitorSampleInfoLogic().SelectResultForSO2(objResultVo.SAMPLE_ID);
                            DataRow[]           dr;
                            dr = dt.Select("ITEM_NAME='二氧化硫'");
                            if (dr.Length > 0)
                            {
                                objResultVo             = new TMisMonitorResultVo();
                                objResultVo.ID          = dr[0]["ID"].ToString();
                                objResultVo.ITEM_RESULT = strUpdateCellValue;
                                blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                            }
                        }
                    }
                    //计算SO2排放量:(SO2浓度*标态流量)/1000000
                    decimal dSPEED = r.IsMatch(So2ornoxVo.NM_SPEED) ? decimal.Parse(So2ornoxVo.NM_SPEED) : 0;
                    blFlag = new TMisMonitorDustattributeSo2ornoxLogic().UpdateCell(strAttInfor_Id, "SO2_DISCHARGE", Math.Round((dPOTENCY * dSPEED) / 1000000, 3).ToString());
                    break;

                case "SO2_PER_POTENCY":
                    DustinforVo = new TMisMonitorDustinforLogic().Details(So2ornoxVo.BASEINFOR_ID);
                    dMODUL_NUM  = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    if (dMODUL_NUM != 0 && So2ornoxVo.SAMPLE_CODE == "平均")
                    {
                        //更新结果表
                        TMisMonitorResultVo objResultVo = new TMisMonitorResultLogic().Details(DustinforVo.SUBTASK_ID);
                        DataTable           dt          = new TMisMonitorSampleInfoLogic().SelectResultForSO2(objResultVo.SAMPLE_ID);
                        DataRow[]           dr;
                        dr = dt.Select("ITEM_NAME='二氧化硫'");
                        if (dr.Length > 0)
                        {
                            objResultVo             = new TMisMonitorResultVo();
                            objResultVo.ID          = dr[0]["ID"].ToString();
                            objResultVo.ITEM_RESULT = strUpdateCellValue;
                            blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                        }
                    }
                    break;

                case "NOX_POTENCY":            //NOX浓度
                    //计算NOX折算浓度:((21/(21-含氧量))*NOX浓度)/折算系数
                    dPOTENCY     = r.IsMatch(So2ornoxVo.NOX_POTENCY) ? decimal.Parse(So2ornoxVo.NOX_POTENCY) : 0;
                    dOXYGEN      = r.IsMatch(So2ornoxVo.SMOKE_OXYGEN) ? decimal.Parse(So2ornoxVo.SMOKE_OXYGEN) : 0;
                    DustinforVo  = new TMisMonitorDustinforLogic().Details(So2ornoxVo.BASEINFOR_ID);
                    dMODUL_NUM   = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    dPER_POTENCY = 0;
                    if (dMODUL_NUM != 0)
                    {
                        dPER_POTENCY = ((21 / (21 - dOXYGEN)) * dPOTENCY) / dMODUL_NUM;
                        blFlag       = new TMisMonitorDustattributeSo2ornoxLogic().UpdateCell(strAttInfor_Id, "NOX_PER_POTENCY", Math.Round(dPER_POTENCY, 0).ToString());
                    }
                    else
                    {
                        if (So2ornoxVo.SAMPLE_CODE == "平均")
                        {
                            //更新结果表
                            TMisMonitorResultVo objResultVo = new TMisMonitorResultLogic().Details(DustinforVo.SUBTASK_ID);
                            DataTable           dt          = new TMisMonitorSampleInfoLogic().SelectResultForSO2(objResultVo.SAMPLE_ID);
                            DataRow[]           dr;
                            dr = dt.Select("ITEM_NAME='氮氧化物'");
                            if (dr.Length > 0)
                            {
                                objResultVo             = new TMisMonitorResultVo();
                                objResultVo.ID          = dr[0]["ID"].ToString();
                                objResultVo.ITEM_RESULT = strUpdateCellValue;
                                blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                            }
                        }
                    }
                    //计算NOX排放量:(SO2浓度*标态流量)/1000000
                    dSPEED = r.IsMatch(So2ornoxVo.NM_SPEED) ? decimal.Parse(So2ornoxVo.NM_SPEED) : 0;
                    blFlag = new TMisMonitorDustattributeSo2ornoxLogic().UpdateCell(strAttInfor_Id, "NOX_DISCHARGE", Math.Round((dPOTENCY * dSPEED) / 1000000, 3).ToString());
                    break;

                case "NOX_PER_POTENCY":
                    DustinforVo = new TMisMonitorDustinforLogic().Details(So2ornoxVo.BASEINFOR_ID);
                    dMODUL_NUM  = r.IsMatch(DustinforVo.MODUL_NUM) ? decimal.Parse(DustinforVo.MODUL_NUM) : 0;
                    if (dMODUL_NUM != 0 && So2ornoxVo.SAMPLE_CODE == "平均")
                    {
                        //更新结果表
                        TMisMonitorResultVo objResultVo = new TMisMonitorResultLogic().Details(DustinforVo.SUBTASK_ID);
                        DataTable           dt          = new TMisMonitorSampleInfoLogic().SelectResultForSO2(objResultVo.SAMPLE_ID);
                        DataRow[]           dr;
                        dr = dt.Select("ITEM_NAME='氮氧化物'");
                        if (dr.Length > 0)
                        {
                            objResultVo             = new TMisMonitorResultVo();
                            objResultVo.ID          = dr[0]["ID"].ToString();
                            objResultVo.ITEM_RESULT = strUpdateCellValue;
                            blFlag = new TMisMonitorResultLogic().Edit(objResultVo);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }
        return(blFlag);
    }