/// <summary> /// 根据监测天数拆分任务(验收监测) Create By:weilin 2014-12-04 /// </summary> /// <param name="strTaskID"></param> /// <returns></returns> private static bool SplitAcceptTask(string strTaskID, TBaseSerialruleVo objSerial) { bool bResult = true; TMisMonitorTaskVo objTaskVo = new TMisMonitorTaskLogic().Details(strTaskID); TMisMonitorReportVo objReportVo = new TMisMonitorReportVo(); if (objTaskVo.CONTRACT_TYPE == "05") //验收监测 { TMisContractVo objContractVo = new TMisContractLogic().Details(objTaskVo.CONTRACT_ID); TMisContractPointVo objContractPointVo = new TMisContractPointVo(); objContractPointVo.CONTRACT_ID = objTaskVo.CONTRACT_ID; objContractPointVo.IS_DEL = "0"; objContractPointVo = new TMisContractPointLogic().Details(objContractPointVo); if (objContractPointVo.SAMPLE_DAY != "" && IsNumeric(objContractPointVo.SAMPLE_DAY) && objContractVo.REMARK5 == "") { int iSampleDay = int.Parse(objContractPointVo.SAMPLE_DAY); TMisMonitorTaskCompanyVo objClient = new TMisMonitorTaskCompanyLogic().Details(objTaskVo.CLIENT_COMPANY_ID); TMisMonitorTaskCompanyVo objTested = new TMisMonitorTaskCompanyLogic().Details(objTaskVo.TESTED_COMPANY_ID); for (int i = 1; i < iSampleDay; i++) { TMisMonitorTaskVo objTaskAddVo = new TMisMonitorTaskVo(); objTaskAddVo.ID = GetSerialNumber("t_mis_monitor_taskId"); objTaskAddVo.CONTRACT_ID = objTaskVo.CONTRACT_ID; objTaskAddVo.PLAN_ID = objTaskVo.PLAN_ID; objTaskAddVo.CONTRACT_CODE = objTaskVo.CONTRACT_CODE; objTaskAddVo.TICKET_NUM = objTaskVo.TICKET_NUM + "-" + (i + 1).ToString(); objTaskAddVo.PROJECT_NAME = objTaskVo.PROJECT_NAME; objTaskAddVo.CONTRACT_YEAR = objTaskVo.CONTRACT_YEAR; objTaskAddVo.CONTRACT_TYPE = objTaskVo.CONTRACT_TYPE; objTaskAddVo.TEST_TYPE = objTaskVo.TEST_TYPE; objTaskAddVo.TEST_PURPOSE = objTaskVo.TEST_PURPOSE; objTaskAddVo.ASKING_DATE = objTaskVo.ASKING_DATE; objTaskAddVo.SAMPLE_SOURCE = objTaskVo.SAMPLE_SOURCE; objTaskAddVo.CREATOR_ID = objTaskVo.CREATOR_ID; objTaskAddVo.CREATE_DATE = objTaskVo.CREATE_DATE; objTaskAddVo.TASK_STATUS = objTaskVo.TASK_STATUS; objTaskAddVo.REMARK1 = objTaskVo.REMARK1; objTaskAddVo.REMARK2 = objTaskVo.REMARK2; objTaskAddVo.REMARK3 = objTaskVo.REMARK3; objTaskAddVo.QC_STATUS = objTaskVo.QC_STATUS; objTaskAddVo.COMFIRM_STATUS = objTaskVo.COMFIRM_STATUS; objTaskAddVo.ALLQC_STATUS = objTaskVo.ALLQC_STATUS; objTaskAddVo.REPORT_HANDLE = objTaskVo.REPORT_HANDLE; //构造监测任务委托企业信息 TMisMonitorTaskCompanyVo objClientAdd = new TMisMonitorTaskCompanyVo(); PageBase.CopyObject(objClient, objClientAdd);//复制对象 objClientAdd.ID = PageBase.GetSerialNumber("t_mis_monitor_taskcompanyId"); objClientAdd.TASK_ID = objTaskAddVo.ID; //构造监测任务受检企业信息 TMisMonitorTaskCompanyVo objTestedAdd = new TMisMonitorTaskCompanyVo(); PageBase.CopyObject(objTested, objTestedAdd);//复制对象 objTestedAdd.ID = PageBase.GetSerialNumber("t_mis_monitor_taskcompanyId"); objTestedAdd.TASK_ID = objTaskAddVo.ID; objTaskAddVo.CLIENT_COMPANY_ID = objClientAdd.ID; objTaskAddVo.TESTED_COMPANY_ID = objTestedAdd.ID; TMisMonitorReportVo objReportAdd = new TMisMonitorReportVo(); objReportVo.ID = GetSerialNumber("t_mis_monitor_report_id"); objReportVo.REPORT_CODE = objReportVo.REPORT_CODE + "-" + (i + 1).ToString(); objReportVo.TASK_ID = objTaskAddVo.ID; objReportVo.IF_GET = "0"; //监测子任务信息 根据委托书监测类别进行构造 ArrayList arrSubTask = new ArrayList(); //监测子任务集合 ArrayList arrSubTaskApp = new ArrayList(); ArrayList arrTaskPoint = new ArrayList(); //监测点位集合 ArrayList arrPointItem = new ArrayList(); //监测点位明细集合 ArrayList arrSample = new ArrayList(); //样品集合 ArrayList arrSampleResult = new ArrayList(); //样品结果集合 ArrayList arrSampleResultApp = new ArrayList(); //样品分析执行表 List <TMisMonitorSubtaskVo> listSubTask = new TMisMonitorSubtaskLogic().SelectByObject(new TMisMonitorSubtaskVo() { TASK_ID = objTaskVo.ID }, 0, 0); for (int j = 0; j < listSubTask.Count; j++) { TMisMonitorSubtaskVo objSubTaskAdd = new TMisMonitorSubtaskVo(); CopyObject(listSubTask[j], objSubTaskAdd); objSubTaskAdd.ID = GetSerialNumber("t_mis_monitor_subtaskId"); objSubTaskAdd.TASK_ID = objTaskAddVo.ID; arrSubTask.Add(objSubTaskAdd); TMisMonitorSubtaskAppVo objSubTaskApp = new TMisMonitorSubtaskAppVo(); objSubTaskApp.SUBTASK_ID = listSubTask[j].ID; objSubTaskApp = new TMisMonitorSubtaskAppLogic().Details(objSubTaskApp); TMisMonitorSubtaskAppVo objSubTaskAppAdd = new TMisMonitorSubtaskAppVo(); CopyObject(objSubTaskApp, objSubTaskAppAdd); objSubTaskAppAdd.ID = GetSerialNumber("TMisMonitorSubtaskAppID"); objSubTaskAppAdd.SUBTASK_ID = objSubTaskAdd.ID; arrSubTaskApp.Add(objSubTaskAppAdd); List <TMisMonitorTaskPointVo> listTaskPoint = new TMisMonitorTaskPointLogic().SelectByObject(new TMisMonitorTaskPointVo() { TASK_ID = objTaskVo.ID, SUBTASK_ID = listSubTask[j].ID, IS_DEL = "0" }, 0, 0); for (int k = 0; k < listTaskPoint.Count; k++) { TMisMonitorTaskPointVo objTaskPointAdd = new TMisMonitorTaskPointVo(); CopyObject(listTaskPoint[k], objTaskPointAdd); objTaskPointAdd.ID = GetSerialNumber("t_mis_monitor_taskpointId"); objTaskPointAdd.TASK_ID = objTaskAddVo.ID; arrTaskPoint.Add(objTaskPointAdd); TMisMonitorSampleInfoVo objSampleInfoVo = new TMisMonitorSampleInfoVo(); objSampleInfoVo.SUBTASK_ID = listSubTask[j].ID; objSampleInfoVo.POINT_ID = listTaskPoint[k].ID; objSampleInfoVo = new TMisMonitorSampleInfoLogic().Details(objSampleInfoVo); TMisMonitorSampleInfoVo objSampleInfoAdd = new TMisMonitorSampleInfoVo(); CopyObject(objSampleInfoVo, objSampleInfoAdd); objSampleInfoAdd.ID = GetSerialNumber("MonitorSampleId"); objSampleInfoAdd.SUBTASK_ID = objSubTaskAdd.ID; objSampleInfoAdd.POINT_ID = objTaskPointAdd.ID; objSampleInfoAdd.SAMPLE_CODE = CreateBaseDefineCodeForSample(objSerial, objTaskAddVo, objSubTaskAdd); arrSample.Add(objSampleInfoAdd); List <TMisMonitorTaskItemVo> listTaskItem = new TMisMonitorTaskItemLogic().SelectByObject(new TMisMonitorTaskItemVo() { TASK_POINT_ID = listTaskPoint[k].ID, IS_DEL = "0" }, 0, 0); for (int l = 0; l < listTaskItem.Count; l++) { TMisMonitorTaskItemVo objTaskItemAdd = new TMisMonitorTaskItemVo(); CopyObject(listTaskItem[l], objTaskItemAdd); objTaskItemAdd.ID = GetSerialNumber("t_mis_monitor_task_item_id"); objTaskItemAdd.TASK_POINT_ID = objTaskPointAdd.ID; arrPointItem.Add(objTaskItemAdd); } List <TMisMonitorResultVo> listResult = new TMisMonitorResultLogic().SelectByObject(new TMisMonitorResultVo() { SAMPLE_ID = objSampleInfoVo.ID }, 0, 0); for (int l = 0; l < listResult.Count; l++) { TMisMonitorResultVo objResultAdd = new TMisMonitorResultVo(); CopyObject(listResult[l], objResultAdd); objResultAdd.ID = GetSerialNumber("MonitorResultId"); objResultAdd.SAMPLE_ID = objSampleInfoAdd.ID; arrSampleResult.Add(objResultAdd); TMisMonitorResultAppVo objResultAppVo = new TMisMonitorResultAppVo(); objResultAppVo.RESULT_ID = listResult[l].ID; objResultAppVo = new TMisMonitorResultAppLogic().Details(objResultAppVo); TMisMonitorResultAppVo objResultAppAdd = new TMisMonitorResultAppVo(); CopyObject(objResultAppVo, objResultAppAdd); objResultAppAdd.ID = GetSerialNumber("MonitorResultAppId"); objResultAppAdd.RESULT_ID = objResultAdd.ID; arrSampleResultApp.Add(objResultAppAdd); } } } if (new TMisMonitorTaskLogic().SaveTrans(objTaskAddVo, objClientAdd, objTestedAdd, objReportVo, arrTaskPoint, arrSubTask, arrSubTaskApp, arrPointItem, arrSample, arrSampleResult, arrSampleResultApp)) { bResult = true; } } //更新任务单号 objTaskVo.TICKET_NUM = objTaskVo.TICKET_NUM + "-1"; new TMisMonitorTaskLogic().Edit(objTaskVo); //更新报告单号 objReportVo.REPORT_CODE = objReportVo.REPORT_CODE + "-1"; new TMisMonitorReportLogic().Edit(objReportVo); //更新验收委托书任务已经拆分任务的标志 objContractVo.REMARK5 = "1"; new TMisContractLogic().Edit(objContractVo); } } return(bResult); }
protected void btnExport_QY_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); TMisContractVo objItems = new TMisContractVo(); string strWorkContent = ""; if (!String.IsNullOrEmpty(task_id)) { objItems.ID = task_id; } dt = new TMisContractLogic().GetExportInforData(objItems); FileStream file = new FileStream(HttpContext.Current.Server.MapPath("TempFile/QY/ContractInforSheet.xls"), FileMode.Open, FileAccess.Read); HSSFWorkbook hssfworkbook = new HSSFWorkbook(file); ISheet sheet = hssfworkbook.GetSheet("Sheet1"); //插入委托书单号 sheet.GetRow(2).GetCell(6).SetCellValue("No:" + dt.Rows[0]["CONTRACT_CODE"].ToString()); sheet.GetRow(4).GetCell(2).SetCellValue(dt.Rows[0]["COMPANY_NAME"].ToString()); //委托单位 sheet.GetRow(4).GetCell(5).SetCellValue(dt.Rows[0]["CONTACT_NAME"].ToString()); //联系人 sheet.GetRow(4).GetCell(8).SetCellValue(dt.Rows[0]["PHONE"].ToString()); //联系电话 sheet.GetRow(5).GetCell(2).SetCellValue(dt.Rows[0]["CONTACT_ADDRESS"].ToString()); //地址 sheet.GetRow(5).GetCell(5).SetCellValue(dt.Rows[0]["POST"].ToString()); //邮编 sheet.GetRow(9).GetCell(2).SetCellValue(dt.Rows[0]["TESTED_COMPANY_NAME"].ToString()); //受检单位 sheet.GetRow(9).GetCell(4).SetCellValue(dt.Rows[0]["TESTED_PHONE"].ToString()); //联系电话 sheet.GetRow(9).GetCell(8).SetCellValue(dt.Rows[0]["TESTED_CONTACT_ADDRESS"].ToString()); //地址 sheet.GetRow(9).GetCell(6).SetCellValue(dt.Rows[0]["TESTED_POST"].ToString()); //邮编 DataTable dtDict = PageBase.getDictList("RPT_WAY"); DataTable dtSampleSource = PageBase.getDictList("SAMPLE_SOURCE"); string strWay = "", strSampleWay = "";; if (dtDict != null) { foreach (DataRow dr in dtDict.Rows) { strWay += dr["DICT_TEXT"].ToString(); if (dr["DICT_CODE"].ToString() == dt.Rows[0]["RPT_WAY"].ToString()) { strWay += "■ "; } else { strWay += "□ "; } } } if (dtSampleSource != null) { foreach (DataRow dr in dtSampleSource.Rows) { strSampleWay += dr["DICT_TEXT"].ToString(); if (dr["DICT_TEXT"].ToString() == dt.Rows[0]["SAMPLE_SOURCE"].ToString()) { strSampleWay += "■ "; } else { strSampleWay += "□ "; } } } sheet.GetRow(5).GetCell(8).SetCellValue(strWay); //领取方式 sheet.GetRow(6).GetCell(2).SetCellValue(strSampleWay); //监测类型 sheet.GetRow(7).GetCell(2).SetCellValue(dt.Rows[0]["TEST_PURPOSE"].ToString()); //监测目的 sheet.GetRow(8).GetCell(2).SetCellValue(dt.Rows[0]["PROVIDE_DATA"].ToString()); //提供资料 sheet.GetRow(10).GetCell(2).SetCellValue(dt.Rows[0]["OTHER_ASKING"].ToString()); //其他要求 sheet.GetRow(15).GetCell(1).SetCellValue(dt.Rows[0]["MONITOR_ACCORDING"].ToString()); //监测依据 sheet.GetRow(20).GetCell(1).SetCellValue(dt.Rows[0]["REMARK2"].ToString()); //备注 string strExplain = @"1.是否有分包:□是[□电话确认;□其它: ] □否 是否使用非标准方法: □是 □否 2.监测收费参照广东省物价局粤价函[1996]64号文规定执行。委托单位到本站办公室(603室)领取《清远市非税收入缴款通知书》限期到通知书列明的银行所属任何一个网点缴监测费{0}元({1}),到颁行缴款后应将盖有银行收讫章的广东省非税收入(电子)票据执收单位联送回给本站综合室。 3.本站在确认已缴监测费用和委托方提供了必要的监测条件后60个工作日内完成监测。"; string strBUDGET = dt.Rows[0]["BUDGET"].ToString() == "" ? "0" : dt.Rows[0]["BUDGET"].ToString(); strExplain = string.Format(strExplain, strBUDGET, DaXie(strBUDGET)); sheet.GetRow(18).GetCell(1).SetCellValue(strExplain); //监测内容 string[] strMonitroTypeArr = dt.Rows[0]["TEST_TYPES"].ToString().Split(';'); if (dt.Rows[0]["SAMPLE_SOURCE"].ToString() == "送样") { //strWorkContent += "地表水、地下水(送样)\n"; int intLen = strMonitroTypeArr.Length; int INTSHOWLEN = 0; foreach (string strMonitor in strMonitroTypeArr) { INTSHOWLEN++; strWorkContent += GetMonitorName(strMonitor) + "、"; if (INTSHOWLEN == intLen - 1) { strWorkContent += "(送样)\n"; } } } //获取当前监测点信息 TMisContractPointVo ContractPointVo = new TMisContractPointVo(); ContractPointVo.CONTRACT_ID = task_id; ContractPointVo.IS_DEL = "0"; DataTable dtPoint = new TMisContractPointLogic().SelectByTable(ContractPointVo); string strOutValuePoint = "", strOutValuePointItems = ""; if (strMonitroTypeArr.Length > 0) { foreach (string strMonitor in strMonitroTypeArr) { string strMonitorName = "", strPointName = ""; DataRow[] drPoint = dtPoint.Select("MONITOR_ID='" + strMonitor + "'"); if (drPoint.Length > 0) { foreach (DataRow drrPoint in drPoint) { string strPointNameForItems = "", strPointItems = ""; strMonitorName = GetMonitorName(strMonitor) + ":"; strPointName += drrPoint["POINT_NAME"].ToString() + "、"; //获取当前点位的监测项目 TMisContractPointitemVo ContractPointitemVo = new TMisContractPointitemVo(); ContractPointitemVo.CONTRACT_POINT_ID = drrPoint["ID"].ToString(); DataTable dtPointItems = new TMisContractPointitemLogic().GetItemsForPoint(ContractPointitemVo); if (dtPointItems.Rows.Count > 0) { foreach (DataRow drItems in dtPointItems.Rows) { strPointNameForItems = strMonitorName.Substring(0, strMonitorName.Length - 1) + drrPoint["POINT_NAME"] + "(" + (drrPoint["SAMPLE_DAY"].ToString() == "" ? "1" : drrPoint["SAMPLE_DAY"].ToString()) + "天" + (drrPoint["SAMPLE_FREQ"].ToString() == "" ? "1" : drrPoint["SAMPLE_FREQ"].ToString()) + "次):"; strPointItems += drItems["ITEM_NAME"].ToString() + "、"; } strOutValuePointItems += strPointNameForItems + strPointItems.Substring(0, strPointItems.Length - 1) + ";\n"; } } //获取输出监测类型监测点位信息 strOutValuePoint += strMonitorName + strPointName.Substring(0, strPointName.Length - 1) + ";\n"; } } } strWorkContent += "监测点位:\n" + strOutValuePoint; strWorkContent += "监测因子与频次:\n" + strOutValuePointItems; sheet.GetRow(12).GetCell(1).SetCellValue(strWorkContent); 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("委托监测协议书-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls", Encoding.UTF8)); curContext.Response.BinaryWrite(stream.GetBuffer()); curContext.Response.End(); } }
/// <summary> /// 预约办理 /// </summary> /// <param name="strPlanID">预约表ID</param> protected string doPlanTask() { string strReturn = ""; string strTaskFreqType = "0"; string strCodeRule = ""; strTaskFreqType = System.Configuration.ConfigurationManager.AppSettings["TaskFreqType"].ToString(); //预约表对象 TMisContractPlanVo objContractPlan = new TMisContractPlanLogic().Details(strPlanID); TMisContractVo objContract = new TMisContractVo(); objContract.CONTRACT_TYPE = strContractTypeId; if (objContractPlan != null) { //获取委托书信息 #region 构造监测任务对象 TMisMonitorTaskVo objTask = new TMisMonitorTaskVo(); objTask.ID = GetSerialNumber("t_mis_monitor_taskId"); objTask.PLAN_ID = strPlanID; objTask.PROJECT_NAME = strProjectName; objTask.CONTRACT_TYPE = strContractTypeId; objTask.TEST_TYPE = strTest_Type; objTask.CREATOR_ID = LogInfo.UserInfo.ID; objTask.CREATE_DATE = DateTime.Now.ToString(); objTask.TASK_STATUS = "01"; objTask.COMFIRM_STATUS = "0"; objTask.SAMPLE_SOURCE = "抽样"; objTask.TASK_TYPE = strTaskType; objTask.CONTRACT_YEAR = strContractYear; objTask.ASKING_DATE = strAskingDate; //string strQcSetting = ConfigurationManager.AppSettings["QCsetting"].ToString(); //if (!String.IsNullOrEmpty(strQcSetting)) //{ // if (strQcSetting == "1") // { // objTask.QC_STATUS = "1"; // } // else // { // objTask.QC_STATUS = "2"; // } //} //生成任务编号 TBaseSerialruleVo objSerialTask = new TBaseSerialruleVo(); objSerialTask.SERIAL_TYPE = "4"; //潘德军 2013-12-23 任务单号可改,且初始不生成 objTask.TICKET_NUM = PageBase.CreateBaseDefineCode(objSerialTask, objContract); //objTask.TICKET_NUM = "未编号"; //生成委托书单号 objSerialTask.SERIAL_TYPE = "1"; strCodeRule = CreateBaseDefineCode(objSerialTask, objContract); objTask.CONTRACT_CODE = strCodeRule; #region 构造监测任务委托企业信息 //插入委托企业信息 if (!String.IsNullOrEmpty(strCompanyId)) { strClientCompanyId = InsertContractCompanyInfo(objTask.ID, strCompanyId); objTask.CLIENT_COMPANY_ID = strClientCompanyId; } //插入受检企业信息 if (!String.IsNullOrEmpty(strCompanyFrimId)) { strTestCompanyId = InsertContractCompanyInfo(objTask.ID, strCompanyFrimId); objTask.TESTED_COMPANY_ID = strTestCompanyId; } #endregion #endregion #region 监测报告 胡方扬 2013-04-23 Modify 将报告记录初始化生成数据移到委托书办理完毕后就生成 TMisMonitorReportVo objReportVo = new TMisMonitorReportVo(); objReportVo.ID = GetSerialNumber("t_mis_monitor_report_id"); //生成报告编号 胡方扬 2013-04-24 //TBaseSerialruleVo objSerial = new TBaseSerialruleVo(); //objSerial.SERIAL_TYPE = "3"; //objReportVo.REPORT_CODE = PageBase.CreateBaseDefineCode(objSerial,objContract); DataTable objDt = PageBase.getDictList("RptISWT_Code"); if (objDt.Rows.Count > 0) { if (objDt.Rows[0]["DICT_CODE"].ToString() == "1") { objReportVo.REPORT_CODE = objTask.TICKET_NUM; } } objReportVo.TASK_ID = objTask.ID; objReportVo.IF_GET = "0"; #endregion #region 监测子任务信息 根据委托书监测类别进行构造 //监测子任务信息 根据委托书监测类别进行构造 ArrayList arrSubTask = new ArrayList(); //监测子任务集合 ArrayList arrTaskPoint = new ArrayList(); //监测点位集合 ArrayList arrPointItem = new ArrayList(); //监测点位明细集合 ArrayList arrSample = new ArrayList(); //样品集合 ArrayList arrSampleResult = new ArrayList(); //样品结果集合 ArrayList arrSampleResultApp = new ArrayList(); //样品分析执行表 #endregion //监测类别集合 DataTable dtTestType = new TMisContractPointLogic().GetTestType(strPlanID); //预约点位 DataTable dtPoint = new TMisContractPointLogic().SelectPointTable(strPlanID); //获取预约点位明细信息 DataTable dtContractPoint = new TMisContractPointLogic().SelectByTableForPlan(strPlanID); //监测子任务 #region 注释 //#region 监测子任务 //if (dtTestType.Rows.Count > 0) //{ // string strSubTaskIDs = GetSerialNumberList("t_mis_monitor_subtaskId", dtTestType.Rows.Count); // string[] arrSubTaskIDs = strSubTaskIDs.Split(','); // for (int i = 0; i < dtTestType.Rows.Count; i++) // { // string str = dtTestType.Rows[i]["MONITOR_ID"].ToString();//监测类别 // if (str.Length > 0) // { // #region 监测子任务 // //监测子任务 // TMisMonitorSubtaskVo objSubtask = new TMisMonitorSubtaskVo(); // string strSampleManagerID = "";//采样负责人ID // string strSampleID = "";//采样协同人ID串 // //GetSamplingMan(str, objContract.ID, ref strSampleManagerID, ref strSampleID); // objSubtask.ID = arrSubTaskIDs[i]; // objSubtask.TASK_ID = objTask.ID; // objSubtask.MONITOR_ID = str; // if (objContract.PROJECT_ID != "") // { // objSubtask.SAMPLING_MANAGER_ID = objContract.PROJECT_ID; // } // else // { // objSubtask.SAMPLING_MANAGER_ID = strSampleManagerID; // } // objSubtask.SAMPLING_ID = strSampleID; // objSubtask.TASK_TYPE = "发送"; // objSubtask.TASK_STATUS = "01"; // arrSubTask.Add(objSubtask); // #endregion // #region 按类别分点位 // //按类别分点位 // DataRow[] dtTypePoint = dtPoint.Select("MONITOR_ID=" + str); // if (dtTypePoint.Length > 0) // { // string strTaskPointIDs = GetSerialNumberList("t_mis_monitor_taskpointId", dtTypePoint.Length); // string[] arrTaskPointIDs = strTaskPointIDs.Split(','); // string strSampleIDs = GetSerialNumberList("MonitorSampleId", dtTypePoint.Length); // string[] arrSampleIDs = strSampleIDs.Split(','); // for (int j = 0; j < dtTypePoint.Length; j++) // { // DataRow drPoint = dtTypePoint[j]; // #region 监测点位 // // 监测点位 // TMisMonitorTaskPointVo objTaskPoint = new TMisMonitorTaskPointVo(); // objTaskPoint.ID = arrTaskPointIDs[j]; // objTaskPoint.TASK_ID = objTask.ID; // objTaskPoint.SUBTASK_ID = objSubtask.ID; // objTaskPoint.POINT_ID = drPoint["POINT_ID"].ToString(); // objTaskPoint.MONITOR_ID = str; // //objTaskPoint.COMPANY_ID = objTaskTested.ID; // objTaskPoint.CONTRACT_POINT_ID = drPoint["ID"].ToString(); // objTaskPoint.POINT_NAME = drPoint["POINT_NAME"].ToString(); // objTaskPoint.DYNAMIC_ATTRIBUTE_ID = drPoint["DYNAMIC_ATTRIBUTE_ID"].ToString(); // objTaskPoint.ADDRESS = drPoint["ADDRESS"].ToString(); // objTaskPoint.LONGITUDE = drPoint["LONGITUDE"].ToString(); // objTaskPoint.LATITUDE = drPoint["LATITUDE"].ToString(); // objTaskPoint.FREQ = drPoint["FREQ"].ToString(); // objTaskPoint.DESCRIPTION = drPoint["DESCRIPTION"].ToString(); // objTaskPoint.NATIONAL_ST_CONDITION_ID = drPoint["NATIONAL_ST_CONDITION_ID"].ToString(); // objTaskPoint.INDUSTRY_ST_CONDITION_ID = drPoint["INDUSTRY_ST_CONDITION_ID"].ToString(); // objTaskPoint.LOCAL_ST_CONDITION_ID = drPoint["LOCAL_ST_CONDITION_ID"].ToString(); // objTaskPoint.IS_DEL = "0"; // objTaskPoint.NUM = drPoint["NUM"].ToString(); // objTaskPoint.CREATE_DATE = DateTime.Now.ToString(); // arrTaskPoint.Add(objTaskPoint); // #endregion // #region 样品 // //样品 与点位对应 // TMisMonitorSampleInfoVo objSampleInfo = new TMisMonitorSampleInfoVo(); // objSampleInfo.ID = arrSampleIDs[j]; // objSampleInfo.SUBTASK_ID = objSubtask.ID; // objSampleInfo.POINT_ID = objTaskPoint.ID; // objSampleInfo.SAMPLE_NAME = objTaskPoint.POINT_NAME; // objSampleInfo.QC_TYPE = "0";//默认原始样 // objSampleInfo.NOSAMPLE = "0";//默认未采样 // arrSample.Add(objSampleInfo); // #endregion // //点位采用的标准条件项ID // string strConditionID = ""; // if (!string.IsNullOrEmpty(objTaskPoint.NATIONAL_ST_CONDITION_ID)) // { // strConditionID = objTaskPoint.NATIONAL_ST_CONDITION_ID; // } // if (!string.IsNullOrEmpty(objTaskPoint.LOCAL_ST_CONDITION_ID)) // { // strConditionID = objTaskPoint.LOCAL_ST_CONDITION_ID; // } // if (!string.IsNullOrEmpty(objTaskPoint.INDUSTRY_ST_CONDITION_ID)) // { // strConditionID = objTaskPoint.INDUSTRY_ST_CONDITION_ID; // } // //预约项目明细 // DataRow[] dtPointItem = dtContractPoint.Select("CONTRACT_POINT_ID=" + drPoint["ID"].ToString()); // if (dtPointItem.Length > 0) // { // string strTaskItemIDs = GetSerialNumberList("t_mis_monitor_task_item_id", dtPointItem.Length); // string[] arrTaskItemIDs = strTaskItemIDs.Split(','); // string strSampleResultIDs = GetSerialNumberList("MonitorResultId", dtPointItem.Length); // string[] arrSampleResultIDs = strSampleResultIDs.Split(','); // string strResultAppIDs = GetSerialNumberList("MonitorResultAppId", dtPointItem.Length); // string[] arrResultAppIDs = strResultAppIDs.Split(','); // for (int k = 0; k < dtPointItem.Length; k++) // { // DataRow drPointItem = dtPointItem[k]; // //项目采用的标准上限、下限 // string strUp = ""; // string strLow = ""; // string strConditionType = ""; // getStandardValue(drPointItem["ITEM_ID"].ToString(), strConditionID, ref strUp, ref strLow, ref strConditionType); // #region 构造监测任务点位明细表 // //构造监测任务点位明细表 // TMisMonitorTaskItemVo objMonitorTaskItem = new TMisMonitorTaskItemVo(); // objMonitorTaskItem.ID = arrTaskItemIDs[k]; // objMonitorTaskItem.TASK_POINT_ID = objTaskPoint.ID; // objMonitorTaskItem.ITEM_ID = drPointItem["ITEM_ID"].ToString(); // objMonitorTaskItem.CONDITION_ID = strConditionID; // objMonitorTaskItem.CONDITION_TYPE = strConditionType; // objMonitorTaskItem.ST_UPPER = strUp; // objMonitorTaskItem.ST_LOWER = strLow; // objMonitorTaskItem.IS_DEL = "0"; // arrPointItem.Add(objMonitorTaskItem); // #endregion // #region 构造样品结果表 // //构造样品结果表 // string strAnalysisID = "";//分析方法ID // string strStandardID = "";//方法依据ID // getMethod(drPointItem["ITEM_ID"].ToString(), ref strAnalysisID, ref strStandardID); // TMisMonitorResultVo objSampleResult = new TMisMonitorResultVo(); // objSampleResult.ID = arrSampleResultIDs[k]; // objSampleResult.SAMPLE_ID = objSampleInfo.ID; // objSampleResult.QC_TYPE = objSampleInfo.QC_TYPE; // objSampleResult.ITEM_ID = drPointItem["ITEM_ID"].ToString(); // objSampleResult.SAMPLING_INSTRUMENT =GetItemSamplingInstrumentID( drPointItem["ITEM_ID"].ToString()); // objSampleResult.ANALYSIS_METHOD_ID = strAnalysisID; // objSampleResult.STANDARD_ID = strStandardID; // objSampleResult.QC = "0";// 默认原始样手段 // objSampleResult.TASK_TYPE = "发送"; // objSampleResult.RESULT_STATUS = "01";//默认分析结果填报 // objSampleResult.PRINTED = "0";//默认未打印 // arrSampleResult.Add(objSampleResult); // #endregion // #region 构造样品执行表 // //构造样品执行表 // TMisMonitorResultAppVo objResultApp = new TMisMonitorResultAppVo(); // objResultApp.ID = arrResultAppIDs[k]; // objResultApp.RESULT_ID = objSampleResult.ID; // objResultApp.HEAD_USERID = drPointItem["ANALYSIS_MANAGER"].ToString(); // objResultApp.ASSISTANT_USERID = drPointItem["ANALYSIS_ID"].ToString(); // arrSampleResultApp.Add(objResultApp); // #endregion // } // } // } // } // #endregion // } // } //} //#endregion #endregion //监测子任务 #region 监测子任务 if (dtTestType.Rows.Count > 0) { string strSubTaskIDs = new PageBase().GetSerialNumberList("t_mis_monitor_subtaskId", dtTestType.Rows.Count); string[] arrSubTaskIDs = strSubTaskIDs.Split(','); for (int i = 0; i < dtTestType.Rows.Count; i++) { string str = dtTestType.Rows[i]["MONITOR_ID"].ToString();//监测类别 if (str.Length > 0) { #region 监测子任务 //监测子任务 TMisMonitorSubtaskVo objSubtask = new TMisMonitorSubtaskVo(); string strSampleManagerID = ""; //采样负责人ID string strSampleID = ""; //采样协同人ID串 GetSamplingMan(str, objContract.ID, ref strSampleManagerID, ref strSampleID); objSubtask.ID = arrSubTaskIDs[i]; objSubtask.TASK_ID = objTask.ID; objSubtask.MONITOR_ID = str; if (objContract.PROJECT_ID != "") { objSubtask.SAMPLING_MANAGER_ID = objContract.PROJECT_ID; } else { objSubtask.SAMPLING_MANAGER_ID = strSampleManagerID; } objSubtask.SAMPLING_ID = strSampleID; objSubtask.TASK_TYPE = "发送"; objSubtask.TASK_STATUS = "01"; arrSubTask.Add(objSubtask); #endregion #region 类别分点位 //按类别分点位 DataRow[] dtTypePoint = dtPoint.Select("MONITOR_ID='" + str + "'"); if (dtTypePoint.Length > 0) { string strTaskPointIDs = new PageBase().GetSerialNumberList("t_mis_monitor_taskpointId", dtTypePoint.Length); string[] arrTaskPointIDs = strTaskPointIDs.Split(','); string strSampleIDs = new PageBase().GetSerialNumberList("MonitorSampleId", dtTypePoint.Length); string[] arrSampleIDs = strSampleIDs.Split(','); for (int j = 0; j < dtTypePoint.Length; j++) { DataRow drPoint = dtTypePoint[j]; #region 监测点位 // 监测点位 TMisMonitorTaskPointVo objTaskPoint = new TMisMonitorTaskPointVo(); objTaskPoint.ID = arrTaskPointIDs[j]; objTaskPoint.TASK_ID = objTask.ID; objTaskPoint.SUBTASK_ID = objSubtask.ID; objTaskPoint.POINT_ID = drPoint["POINT_ID"].ToString(); objTaskPoint.MONITOR_ID = str; //objTaskPoint.COMPANY_ID = objTaskTested.ID; objTaskPoint.CONTRACT_POINT_ID = drPoint["ID"].ToString(); objTaskPoint.POINT_NAME = drPoint["POINT_NAME"].ToString(); objTaskPoint.DYNAMIC_ATTRIBUTE_ID = drPoint["DYNAMIC_ATTRIBUTE_ID"].ToString(); objTaskPoint.ADDRESS = drPoint["ADDRESS"].ToString(); objTaskPoint.LONGITUDE = drPoint["LONGITUDE"].ToString(); objTaskPoint.LATITUDE = drPoint["LATITUDE"].ToString(); objTaskPoint.FREQ = drPoint["FREQ"].ToString(); objTaskPoint.DESCRIPTION = drPoint["DESCRIPTION"].ToString(); objTaskPoint.NATIONAL_ST_CONDITION_ID = drPoint["NATIONAL_ST_CONDITION_ID"].ToString(); objTaskPoint.INDUSTRY_ST_CONDITION_ID = drPoint["INDUSTRY_ST_CONDITION_ID"].ToString(); objTaskPoint.LOCAL_ST_CONDITION_ID = drPoint["LOCAL_ST_CONDITION_ID"].ToString(); objTaskPoint.IS_DEL = "0"; objTaskPoint.NUM = drPoint["NUM"].ToString(); objTaskPoint.CREATE_DATE = DateTime.Now.ToString(); arrTaskPoint.Add(objTaskPoint); #endregion //点位采用的标准条件项ID string strConditionID = ""; if (!string.IsNullOrEmpty(objTaskPoint.NATIONAL_ST_CONDITION_ID)) { strConditionID = objTaskPoint.NATIONAL_ST_CONDITION_ID; } if (!string.IsNullOrEmpty(objTaskPoint.LOCAL_ST_CONDITION_ID)) { strConditionID = objTaskPoint.LOCAL_ST_CONDITION_ID; } if (!string.IsNullOrEmpty(objTaskPoint.INDUSTRY_ST_CONDITION_ID)) { strConditionID = objTaskPoint.INDUSTRY_ST_CONDITION_ID; } //计算采样频次 int intFreq = 1, intSampleDay = 1; if (drPoint["SAMPLE_FREQ"].ToString().Length > 0) { intFreq = int.Parse(drPoint["SAMPLE_FREQ"].ToString()); } //计算周期 if (drPoint["SAMPLE_DAY"].ToString().Length > 0) { intSampleDay = int.Parse(drPoint["SAMPLE_DAY"].ToString()); } #region 样品信息、结果、结果执行 #region 如果 strTaskFreqType 判断为0 if (!String.IsNullOrEmpty(strTaskFreqType) && strTaskFreqType == "0") { #region 样品 //样品 与点位对应 TMisMonitorSampleInfoVo objSampleInfo = new TMisMonitorSampleInfoVo(); objSampleInfo.ID = arrSampleIDs[j]; objSampleInfo.SUBTASK_ID = objSubtask.ID; objSampleInfo.POINT_ID = objTaskPoint.ID; objSampleInfo.SAMPLE_NAME = objTaskPoint.POINT_NAME; objSampleInfo.QC_TYPE = "0"; //默认原始样 objSampleInfo.NOSAMPLE = "0"; //默认未采样 arrSample.Add(objSampleInfo); #endregion //预约项目明细 DataRow[] dtPointItem = dtContractPoint.Select("CONTRACT_POINT_ID=" + drPoint["ID"].ToString()); if (dtPointItem.Length > 0) { string strTaskItemIDs = new PageBase().GetSerialNumberList("t_mis_monitor_task_item_id", dtPointItem.Length); string[] arrTaskItemIDs = strTaskItemIDs.Split(','); string strSampleResultIDs = new PageBase().GetSerialNumberList("MonitorResultId", dtPointItem.Length); string[] arrSampleResultIDs = strSampleResultIDs.Split(','); string strResultAppIDs = new PageBase().GetSerialNumberList("MonitorResultAppId", dtPointItem.Length); string[] arrResultAppIDs = strResultAppIDs.Split(','); for (int k = 0; k < dtPointItem.Length; k++) { DataRow drPointItem = dtPointItem[k]; //项目采用的标准上限、下限 string strUp = ""; string strLow = ""; string strConditionType = ""; getStandardValue(drPointItem["ITEM_ID"].ToString(), strConditionID, ref strUp, ref strLow, ref strConditionType); #region 构造监测任务点位明细表 //构造监测任务点位明细表 TMisMonitorTaskItemVo objMonitorTaskItem = new TMisMonitorTaskItemVo(); objMonitorTaskItem.ID = arrTaskItemIDs[k]; objMonitorTaskItem.TASK_POINT_ID = objTaskPoint.ID; objMonitorTaskItem.ITEM_ID = drPointItem["ITEM_ID"].ToString(); objMonitorTaskItem.CONDITION_ID = strConditionID; objMonitorTaskItem.CONDITION_TYPE = strConditionType; objMonitorTaskItem.ST_UPPER = strUp; objMonitorTaskItem.ST_LOWER = strLow; objMonitorTaskItem.IS_DEL = "0"; arrPointItem.Add(objMonitorTaskItem); #endregion #region 构造样品结果表 //构造样品结果表 string strAnalysisID = ""; //分析方法ID string strStandardID = ""; //方法依据ID string strCheckOut = ""; //检出限 getMethod(drPointItem["ITEM_ID"].ToString(), ref strAnalysisID, ref strStandardID, ref strCheckOut); TMisMonitorResultVo objSampleResult = new TMisMonitorResultVo(); objSampleResult.ID = arrSampleResultIDs[k]; objSampleResult.SAMPLE_ID = objSampleInfo.ID; objSampleResult.QC_TYPE = objSampleInfo.QC_TYPE; objSampleResult.ITEM_ID = drPointItem["ITEM_ID"].ToString(); objSampleResult.SAMPLING_INSTRUMENT = GetItemSamplingInstrumentID(drPointItem["ITEM_ID"].ToString()); objSampleResult.ANALYSIS_METHOD_ID = strAnalysisID; objSampleResult.STANDARD_ID = strStandardID; objSampleResult.RESULT_CHECKOUT = strCheckOut; objSampleResult.QC = "0"; // 默认原始样手段 objSampleResult.TASK_TYPE = "发送"; objSampleResult.RESULT_STATUS = "01"; //默认分析结果填报 objSampleResult.PRINTED = "0"; //默认未打印 arrSampleResult.Add(objSampleResult); #endregion #region 构造样品执行表 //构造样品执行表 TMisMonitorResultAppVo objResultApp = new TMisMonitorResultAppVo(); objResultApp.ID = arrResultAppIDs[k]; objResultApp.RESULT_ID = objSampleResult.ID; objResultApp.HEAD_USERID = drPointItem["ANALYSIS_MANAGER"].ToString(); objResultApp.ASSISTANT_USERID = drPointItem["ANALYSIS_ID"].ToString(); arrSampleResultApp.Add(objResultApp); #endregion } } } #endregion #region 如果 strTaskFreqType 判断为1 if (!String.IsNullOrEmpty(strTaskFreqType) && strTaskFreqType == "1") { for (int r = 0; r < intSampleDay; r++) { for (int s = 0; s < intFreq; s++) { #region 样品 //样品 与点位对应 TMisMonitorSampleInfoVo objSampleInfo = new TMisMonitorSampleInfoVo(); //objSampleInfo.ID = arrSampleIDs[j]; objSampleInfo.ID = new PageBase().GetSerialNumberList("MonitorSampleId", 1); objSampleInfo.SUBTASK_ID = objSubtask.ID; objSampleInfo.POINT_ID = objTaskPoint.ID; //objSampleInfo.SAMPLE_NAME = objTaskPoint.POINT_NAME; objSampleInfo.SAMPLE_NAME = objTaskPoint.POINT_NAME + " 第" + (r + 1).ToString() + "天" + " 第" + (s + 1).ToString() + "次"; objSampleInfo.QC_TYPE = "0"; //默认原始样 objSampleInfo.NOSAMPLE = "0"; //默认未采样 arrSample.Add(objSampleInfo); #endregion //预约项目明细 DataRow[] dtPointItem = dtContractPoint.Select("CONTRACT_POINT_ID=" + drPoint["ID"].ToString()); if (dtPointItem.Length > 0) { string strTaskItemIDs = new PageBase().GetSerialNumberList("t_mis_monitor_task_item_id", dtPointItem.Length); string[] arrTaskItemIDs = strTaskItemIDs.Split(','); string strSampleResultIDs = new PageBase().GetSerialNumberList("MonitorResultId", dtPointItem.Length); string[] arrSampleResultIDs = strSampleResultIDs.Split(','); string strResultAppIDs = new PageBase().GetSerialNumberList("MonitorResultAppId", dtPointItem.Length); string[] arrResultAppIDs = strResultAppIDs.Split(','); for (int k = 0; k < dtPointItem.Length; k++) { DataRow drPointItem = dtPointItem[k]; //项目采用的标准上限、下限 string strUp = ""; string strLow = ""; string strConditionType = ""; getStandardValue(drPointItem["ITEM_ID"].ToString(), strConditionID, ref strUp, ref strLow, ref strConditionType); #region 构造监测任务点位明细表 //构造监测任务点位明细表 TMisMonitorTaskItemVo objMonitorTaskItem = new TMisMonitorTaskItemVo(); objMonitorTaskItem.ID = arrTaskItemIDs[k]; objMonitorTaskItem.TASK_POINT_ID = objTaskPoint.ID; objMonitorTaskItem.ITEM_ID = drPointItem["ITEM_ID"].ToString(); objMonitorTaskItem.CONDITION_ID = strConditionID; objMonitorTaskItem.CONDITION_TYPE = strConditionType; objMonitorTaskItem.ST_UPPER = strUp; objMonitorTaskItem.ST_LOWER = strLow; objMonitorTaskItem.IS_DEL = "0"; arrPointItem.Add(objMonitorTaskItem); #endregion #region 构造样品结果表 //构造样品结果表 string strAnalysisID = ""; //分析方法ID string strStandardID = ""; //方法依据ID string strCheckOut = ""; //检出限 getMethod(drPointItem["ITEM_ID"].ToString(), ref strAnalysisID, ref strStandardID, ref strCheckOut); TMisMonitorResultVo objSampleResult = new TMisMonitorResultVo(); objSampleResult.ID = arrSampleResultIDs[k]; objSampleResult.SAMPLE_ID = objSampleInfo.ID; objSampleResult.QC_TYPE = objSampleInfo.QC_TYPE; objSampleResult.ITEM_ID = drPointItem["ITEM_ID"].ToString(); objSampleResult.SAMPLING_INSTRUMENT = GetItemSamplingInstrumentID(drPointItem["ITEM_ID"].ToString()); objSampleResult.ANALYSIS_METHOD_ID = strAnalysisID; objSampleResult.STANDARD_ID = strStandardID; objSampleResult.RESULT_CHECKOUT = strCheckOut; objSampleResult.QC = "0"; // 默认原始样手段 objSampleResult.TASK_TYPE = "发送"; objSampleResult.RESULT_STATUS = "01"; //默认分析结果填报 objSampleResult.PRINTED = "0"; //默认未打印 arrSampleResult.Add(objSampleResult); #endregion #region 构造样品执行表 //构造样品执行表 TMisMonitorResultAppVo objResultApp = new TMisMonitorResultAppVo(); objResultApp.ID = arrResultAppIDs[k]; objResultApp.RESULT_ID = objSampleResult.ID; objResultApp.HEAD_USERID = drPointItem["ANALYSIS_MANAGER"].ToString(); objResultApp.ASSISTANT_USERID = drPointItem["ANALYSIS_ID"].ToString(); arrSampleResultApp.Add(objResultApp); #endregion } } } } } #endregion #endregion } } #endregion } } } #endregion if (new TMisMonitorTaskLogic().SaveTrans(objTask, objReportVo, arrTaskPoint, arrSubTask, arrPointItem, arrSample, arrSampleResult, arrSampleResultApp)) { strReturn = "1"; } } return(strReturn); }