/// <summary> /// 采样任务分配信息 /// </summary> /// <returns></returns> private string getTwoGridInfo() { if (this.PLAN_ID.Value.Length == 0) { return(""); } TMisMonitorTaskVo objTask = new TMisMonitorTaskVo(); objTask.PLAN_ID = this.PLAN_ID.Value; objTask = new TMisMonitorTaskLogic().Details(objTask); string strSortname = Request.Params["sortname"]; string strSortorder = Request.Params["sortorder"]; //当前页面 int intPageIndex = Convert.ToInt32(Request.Params["page"]); //每页记录数 int intPageSize = Convert.ToInt32(Request.Params["pagesize"]); TMisMonitorSubtaskVo objSubtask = new TMisMonitorSubtaskVo(); objSubtask.TASK_ID = objTask.ID; DataTable dt = new TMisMonitorSubtaskLogic().SelectByTable(objSubtask, intPageIndex, intPageSize); for (int i = 0; i < dt.Rows.Count; i++) { TMisMonitorSampleInfoVo objSampleInfo = new TMisMonitorSampleInfoVo(); objSampleInfo.SUBTASK_ID = dt.Rows[i]["ID"].ToString(); DataTable objDtSample = new TMisMonitorSampleInfoLogic().SelectByTableForPoint(objSampleInfo, 0, 0); if (objDtSample.Rows.Count > 0) { DataRow[] objDtMuMiRow = objDtSample.Select(" QC_TYPE='0'"); foreach (DataRow dr in objDtMuMiRow) { DataTable objDt = new TMisMonitorSampleInfoLogic().GetSampleInforForEnvQcSettingTable(dr["POINT_ID"].ToString(), DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString()); if (objDt.Rows.Count > 0) { string strItemArry = ""; DataRow[] objExistRow = null; //查找是否有做现场平行的质控计划 objExistRow = objDtSample.Select(" POINT_ID='" + dr["POINT_ID"].ToString() + "' AND QC_TYPE='3'"); if (objExistRow.Length <= 0) { DataRow[] drRow_PX = objDt.Select("QC_TYPE='3'"); if (drRow_PX.Length > 0) { strItemArry = ""; deleteSampleInfo(dr["ID"].ToString(), "3"); foreach (DataRow drItem in drRow_PX) { strItemArry += drItem["ITEM_ID"].ToString() + ","; } strItemArry = strItemArry.Substring(0, strItemArry.Length - 1); createQcInfo(dr["ID"].ToString(), "3", strItemArry); } } //查找是否有做现场平行的空白计划 objExistRow = objDtSample.Select(" POINT_ID='" + dr["POINT_ID"].ToString() + "' AND QC_TYPE='1'"); if (objExistRow.Length <= 0) { DataRow[] drRow_KB = objDt.Select(" QC_TYPE='1'"); if (drRow_KB.Length > 0) { strItemArry = ""; deleteSampleInfo(dr["ID"].ToString(), "1"); foreach (DataRow drItem in drRow_KB) { strItemArry += drItem["ITEM_ID"].ToString() + ","; } strItemArry = strItemArry.Substring(0, strItemArry.Length - 1); createQcInfo(dr["ID"].ToString(), "1", strItemArry); } } } } } if (dt.Rows[i]["SAMPLING_MANAGER_ID"].ToString().Length > 0) { dt.Rows[i]["SAMPLING_MANAGER_ID"] = new TSysUserLogic().Details(dt.Rows[i]["SAMPLING_MANAGER_ID"].ToString()).REAL_NAME; } else { dt.Rows[i]["SAMPLING_MANAGER_ID"] = "请选择"; } } dt.DefaultView.Sort = "MONITOR_ID ASC"; DataTable dtTemp = dt.DefaultView.ToTable(); int intTotalCount = new TMisMonitorSubtaskLogic().GetSelectResultCount(objSubtask); string strJson = CreateToJson(dtTemp, intTotalCount); return(strJson); }
/// <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); }
protected void btnExport_Click(object sender, EventArgs e) { if (this.hidPlanId.Value.Length == 0) { return; } TMisContractPlanVo objPlan = new TMisContractPlanLogic().Details(this.hidPlanId.Value); string strContractID = objPlan.CONTRACT_ID; TMisContractVo objContract = new TMisContractLogic().Details(strContractID); TMisContractCompanyVo objCompany = new TMisContractCompanyLogic().Details(objContract.TESTED_COMPANY_ID); string strPointNames = ""; string strItemS = ""; int intPointCount = 0; GetInfoForPrint(ref strPointNames, ref intPointCount, ref strItemS); string strSAMPLE_ASK_DATE = this.hidASK_DATE.Value; string strSAMPLE_FINISH_DATE = this.hidFINISH_DATE.Value; FileStream file = new FileStream(HttpContext.Current.Server.MapPath("template/MoniterTaskNotify.xls"), FileMode.Open, FileAccess.Read); HSSFWorkbook hssfworkbook = new HSSFWorkbook(file); ISheet sheet = hssfworkbook.GetSheet("Sheet1"); sheet.GetRow(3).GetCell(1).SetCellValue(objContract.PROJECT_NAME); sheet.GetRow(3).GetCell(3).SetCellValue(objCompany.COMPANY_NAME); sheet.GetRow(4).GetCell(1).SetCellValue(objCompany.MONITOR_ADDRESS); sheet.GetRow(4).GetCell(3).SetCellValue(objCompany.CONTACT_NAME + "、" + objCompany.PHONE); sheet.GetRow(5).GetCell(1).SetCellValue(strSAMPLE_ASK_DATE); sheet.GetRow(5).GetCell(3).SetCellValue(strSAMPLE_FINISH_DATE); //获取当前监测类别信息 DataTable dtMonitor = GetPendingPlanDistinctMonitorDataTable(objPlan.ID); //DataTable dtPoint = GetPendingPlanPointDataTable(objPlan.ID); DataTable dtPoint = new TMisMonitorSampleInfoLogic().GetSampleInfoByPlanID(objPlan.ID); if (dtMonitor.Rows.Count > 0) { int i = 0; foreach (DataRow drr in dtMonitor.Rows) { string strExportMonitorId = this.hidMonitorId.Value.ToString(); //如果hidMonitorId值为空 表示选择的父节点,要导出当前任务所有的监测子任务,如果不为空,则表示选择了某条监测子任务 if (!String.IsNullOrEmpty(strExportMonitorId)) { //如果监测子任务的监测类别不符合当前循环的监测类别,则跳出当前循环,继续下一循环,即:导出具体的监测子任务 if (strExportMonitorId != drr["MONITOR_ID"].ToString()) { //跳出当前循环,继续下一循环 continue; } } string strMonitorName = "", strPointName = "", strOutValuePoint = "", strOutValuePointItems = ""; DataRow[] drPoint = dtPoint.Select("MONITOR_ID='" + drr["MONITOR_ID"].ToString() + "'"); if (drPoint.Length > 0) { foreach (DataRow drrPoint in drPoint) { string strPointNameForItems = "", strPointItems = ""; strMonitorName = drrPoint["MONITOR_TYPE_NAME"].ToString(); strPointName += drrPoint["SAMPLE_CODE"].ToString() + ":" + drrPoint["SAMPLE_NAME"].ToString() + ";\n"; //获取当前点位的监测项目 //DataTable dtPointItems = GetPendingPlanPointItemsDataTable(drrPoint["CONTRACT_POINT_ID"].ToString()); DataTable dtPointItems = new TMisMonitorSampleInfoLogic().GetItemInfoBySampleID(drrPoint["ID"].ToString()); if (dtPointItems.Rows.Count > 0) { foreach (DataRow drItems in dtPointItems.Rows) { strPointNameForItems = drrPoint["SAMPLE_NAME"] + ":"; strPointItems += drItems["ITEM_NAME"].ToString() + "、"; } strOutValuePointItems += strPointNameForItems + strPointItems.Substring(0, strPointItems.Length - 1) + ";\n"; } } //获取输出监测类型监测点位信息 strOutValuePoint += strPointName.Substring(0, strPointName.Length - 2) + ";\n"; } sheet.GetRow(i + 7).GetCell(0).SetCellValue(strMonitorName); sheet.GetRow(i + 7).GetCell(1).SetCellValue(strOutValuePoint); sheet.GetRow(i + 7).GetCell(2).SetCellValue(strOutValuePointItems); i++; } } using (MemoryStream stream = new MemoryStream()) { hssfworkbook.Write(stream); HttpContext curContext = HttpContext.Current; // 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = Encoding.UTF8; curContext.Response.Charset = ""; curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("采样任务分配表.xls", Encoding.UTF8)); curContext.Response.BinaryWrite(stream.GetBuffer()); curContext.Response.End(); } }
/// <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; decimal SO2_POTENCY = 0, SO2_PER_POTENCY = 0, SO2_DISCHARGE = 0; decimal NOX_POTENCY = 0, NOX_PER_POTENCY = 0, NOX_DISCHARGE = 0; decimal SMOKE_TEMPERATURE_COut = 0, SMOKE_OXYGEN_COut = 0, SMOKE_SPEED_COut = 0, NM_SPEED_COut = 0, SO2_POTENCY_COut = 0, SO2_PER_POTENCY_COut = 0, SO2_DISCHARGE_COut = 0, NOX_POTENCY_COut = 0, NOX_PER_POTENCY_COut = 0, NOX_DISCHARGE_COut = 0; int iPRECISION = 0; //平均值的小数位位数 if (!String.IsNullOrEmpty(strBaseInfor_Id)) { TMisMonitorDustattributeSo2ornoxVo objDustAtt = new TMisMonitorDustattributeSo2ornoxVo(); objDustAtt.BASEINFOR_ID = strBaseInfor_Id; objDustAtt.SORT_FIELD = "ID"; DataTable dt = new TMisMonitorDustattributeSo2ornoxLogic().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]["SO2_POTENCY"].ToString())) { SO2_POTENCY += decimal.Parse(dt.Rows[i]["SO2_POTENCY"].ToString()); } else { SO2_POTENCY_COut = GetNumber(dt.Rows[i]["SO2_POTENCY"].ToString()); SO2_POTENCY += SO2_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["SO2_PER_POTENCY"].ToString())) { SO2_PER_POTENCY += decimal.Parse(dt.Rows[i]["SO2_PER_POTENCY"].ToString()); } else { SO2_PER_POTENCY_COut = GetNumber(dt.Rows[i]["SO2_PER_POTENCY"].ToString()); SO2_PER_POTENCY += SO2_PER_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["SO2_DISCHARGE"].ToString())) { SO2_DISCHARGE += decimal.Parse(dt.Rows[i]["SO2_DISCHARGE"].ToString()); } else { SO2_DISCHARGE_COut = GetNumber(dt.Rows[i]["SO2_DISCHARGE"].ToString()); SO2_DISCHARGE += SO2_DISCHARGE_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_POTENCY"].ToString())) { NOX_POTENCY += decimal.Parse(dt.Rows[i]["NOX_POTENCY"].ToString()); } else { NOX_POTENCY_COut = GetNumber(dt.Rows[i]["NOX_POTENCY"].ToString()); NOX_POTENCY += NOX_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_PER_POTENCY"].ToString())) { NOX_PER_POTENCY += decimal.Parse(dt.Rows[i]["NOX_PER_POTENCY"].ToString()); } else { NOX_PER_POTENCY_COut = GetNumber(dt.Rows[i]["NOX_PER_POTENCY"].ToString()); NOX_PER_POTENCY += NOX_PER_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_DISCHARGE"].ToString())) { NOX_DISCHARGE += decimal.Parse(dt.Rows[i]["NOX_DISCHARGE"].ToString()); } else { NOX_DISCHARGE_COut = GetNumber(dt.Rows[i]["NOX_DISCHARGE"].ToString()); NOX_DISCHARGE += NOX_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]["SO2_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SO2_POTENCY"].ToString().Split('.')[1].Length : 0; if (SO2_POTENCY_COut != 0 && Math.Round(SO2_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SO2_POTENCY_COut) { objDustAtt.SO2_POTENCY = SO2_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.SO2_POTENCY = Math.Round(SO2_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["SO2_PER_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SO2_PER_POTENCY"].ToString().Split('.')[1].Length : 0; if (SO2_PER_POTENCY_COut != 0 && Math.Round(SO2_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SO2_PER_POTENCY_COut) { objDustAtt.SO2_PER_POTENCY = SO2_PER_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.SO2_PER_POTENCY = Math.Round(SO2_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["SO2_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["SO2_DISCHARGE"].ToString().Split('.')[1].Length : 0; if (SO2_DISCHARGE_COut != 0 && Math.Round(SO2_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < SO2_DISCHARGE_COut) { objDustAtt.SO2_DISCHARGE = SO2_DISCHARGE_COut.ToString() + "(L)"; } else { objDustAtt.SO2_DISCHARGE = Math.Round(SO2_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["NOX_POTENCY"].ToString().Split('.')[1].Length : 0; if (NOX_POTENCY_COut != 0 && Math.Round(NOX_POTENCY / (dt.Rows.Count - 1), iPRECISION) < NOX_POTENCY_COut) { objDustAtt.NOX_POTENCY = NOX_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.NOX_POTENCY = Math.Round(NOX_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_PER_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["NOX_PER_POTENCY"].ToString().Split('.')[1].Length : 0; if (NOX_PER_POTENCY_COut != 0 && Math.Round(NOX_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION) < NOX_PER_POTENCY_COut) { objDustAtt.NOX_PER_POTENCY = NOX_PER_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.NOX_PER_POTENCY = Math.Round(NOX_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["NOX_DISCHARGE"].ToString().Split('.')[1].Length : 0; if (NOX_DISCHARGE_COut != 0 && Math.Round(NOX_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < NOX_DISCHARGE_COut) { objDustAtt.NOX_DISCHARGE = NOX_DISCHARGE_COut.ToString() + "(L)"; } else { objDustAtt.NOX_DISCHARGE = Math.Round(NOX_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString(); } iSuccess = new TMisMonitorDustattributeSo2ornoxLogic().Edit(objDustAtt); } else { objDustAtt.SORT_FIELD = ""; objDustAtt.ID = GetSerialNumber("t_mis_dutyAttSo2InforID"); 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]["SO2_POTENCY"].ToString())) { SO2_POTENCY += decimal.Parse(dt.Rows[i]["SO2_POTENCY"].ToString()); } else { SO2_POTENCY_COut = GetNumber(dt.Rows[i]["SO2_POTENCY"].ToString()); SO2_POTENCY += SO2_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["SO2_PER_POTENCY"].ToString())) { SO2_PER_POTENCY += decimal.Parse(dt.Rows[i]["SO2_PER_POTENCY"].ToString()); } else { SO2_PER_POTENCY_COut = GetNumber(dt.Rows[i]["SO2_PER_POTENCY"].ToString()); SO2_PER_POTENCY += SO2_PER_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["SO2_DISCHARGE"].ToString())) { SO2_DISCHARGE += decimal.Parse(dt.Rows[i]["SO2_DISCHARGE"].ToString()); } else { SO2_DISCHARGE_COut = GetNumber(dt.Rows[i]["SO2_DISCHARGE"].ToString()); SO2_DISCHARGE += SO2_DISCHARGE_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_POTENCY"].ToString())) { NOX_POTENCY += decimal.Parse(dt.Rows[i]["NOX_POTENCY"].ToString()); } else { NOX_POTENCY_COut = GetNumber(dt.Rows[i]["NOX_POTENCY"].ToString()); NOX_POTENCY += NOX_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_PER_POTENCY"].ToString())) { NOX_PER_POTENCY += decimal.Parse(dt.Rows[i]["NOX_PER_POTENCY"].ToString()); } else { NOX_PER_POTENCY_COut = GetNumber(dt.Rows[i]["NOX_PER_POTENCY"].ToString()); NOX_PER_POTENCY += NOX_PER_POTENCY_COut / 2; } if (r.IsMatch(dt.Rows[i]["NOX_DISCHARGE"].ToString())) { NOX_DISCHARGE += decimal.Parse(dt.Rows[i]["NOX_DISCHARGE"].ToString()); } else { NOX_DISCHARGE_COut = GetNumber(dt.Rows[i]["NOX_DISCHARGE"].ToString()); NOX_DISCHARGE += NOX_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]["SO2_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SO2_POTENCY"].ToString().Split('.')[1].Length : 0; if (SO2_POTENCY_COut != 0 && Math.Round(SO2_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SO2_POTENCY_COut) { objDustAtt.SO2_POTENCY = SO2_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.SO2_POTENCY = Math.Round(SO2_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["SO2_PER_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["SO2_PER_POTENCY"].ToString().Split('.')[1].Length : 0; if (SO2_PER_POTENCY_COut != 0 && Math.Round(SO2_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION) < SO2_PER_POTENCY_COut) { objDustAtt.SO2_PER_POTENCY = SO2_PER_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.SO2_PER_POTENCY = Math.Round(SO2_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["SO2_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["SO2_DISCHARGE"].ToString().Split('.')[1].Length : 0; if (SO2_DISCHARGE_COut != 0 && Math.Round(SO2_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < SO2_DISCHARGE_COut) { objDustAtt.SO2_DISCHARGE = SO2_DISCHARGE_COut.ToString() + "(L)"; } else { objDustAtt.SO2_DISCHARGE = Math.Round(SO2_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["NOX_POTENCY"].ToString().Split('.')[1].Length : 0; if (NOX_POTENCY_COut != 0 && Math.Round(NOX_POTENCY / (dt.Rows.Count - 1), iPRECISION) < NOX_POTENCY_COut) { objDustAtt.NOX_POTENCY = NOX_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.NOX_POTENCY = Math.Round(NOX_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_PER_POTENCY"].ToString().Contains('.') ? dt.Rows[0]["NOX_PER_POTENCY"].ToString().Split('.')[1].Length : 0; if (NOX_PER_POTENCY_COut != 0 && Math.Round(NOX_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION) < NOX_PER_POTENCY_COut) { objDustAtt.NOX_PER_POTENCY = NOX_PER_POTENCY_COut.ToString() + "(L)"; } else { objDustAtt.NOX_PER_POTENCY = Math.Round(NOX_PER_POTENCY / (dt.Rows.Count - 1), iPRECISION).ToString(); } iPRECISION = dt.Rows[0]["NOX_DISCHARGE"].ToString().Contains('.') ? dt.Rows[0]["NOX_DISCHARGE"].ToString().Split('.')[1].Length : 0; if (NOX_DISCHARGE_COut != 0 && Math.Round(NOX_DISCHARGE / (dt.Rows.Count - 1), iPRECISION) < NOX_DISCHARGE_COut) { objDustAtt.NOX_DISCHARGE = NOX_DISCHARGE_COut.ToString() + "(L)"; } else { objDustAtt.NOX_DISCHARGE = Math.Round(NOX_DISCHARGE / (dt.Rows.Count - 1), iPRECISION).ToString(); } iSuccess = new TMisMonitorDustattributeSo2ornoxLogic().Create(objDustAtt); } //更新结果表 TMisMonitorDustinforVo objDustinforVo = new TMisMonitorDustinforLogic().Details(strBaseInfor_Id); TMisMonitorResultVo objResultVo = new TMisMonitorResultLogic().Details(objDustinforVo.SUBTASK_ID); 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(); if (objDustinforVo.MODUL_NUM.Length > 0) { objResultVo.ITEM_RESULT = objDustAtt.SO2_PER_POTENCY; } else { objResultVo.ITEM_RESULT = objDustAtt.SO2_POTENCY; } iSuccess = new TMisMonitorResultLogic().Edit(objResultVo); } //氮氧化物 dr = dt.Select("ITEM_NAME='氮氧化物'"); if (dr.Length > 0) { objResultVo = new TMisMonitorResultVo(); objResultVo.ID = dr[0]["ID"].ToString(); if (objDustinforVo.MODUL_NUM.Length > 0) { objResultVo.ITEM_RESULT = objDustAtt.NOX_PER_POTENCY; } else { objResultVo.ITEM_RESULT = objDustAtt.NOX_POTENCY; } iSuccess = new TMisMonitorResultLogic().Edit(objResultVo); } } return(iSuccess ? "1" : "0"); }