/// <summary>
    /// 获取委托书下下有监测点位的所有监测类别 Create By Castle (胡方扬) 2012-12-21
    /// </summary>
    /// <returns></returns>
    private string GetPointMonitorInfor()
    {
        DataTable dt = new DataTable();
        TMisContractPointFreqVo objItems = new TMisContractPointFreqVo();

        objItems.CONTRACT_ID = Request.QueryString["task_id"].ToString();
        dt = new TMisContractPointFreqLogic().GetPointMonitorInforForPlan(objItems, Request.QueryString["strPlanId"].ToString());
        return(PageBase.LigerGridDataToJson(dt, dt.Rows.Count));
    }
Exemplo n.º 2
0
    protected void btnExport_Click(object sender, EventArgs e)
    {
        FileStream file = null;

        if (strType == "QY")
        {
            file = new FileStream(HttpContext.Current.Server.MapPath("../Monitor/sampling/template/WorkTaskSheetQY.xls"), FileMode.Open, FileAccess.Read);
        }
        else if (strType == "ZZ")
        {
            file = new FileStream(HttpContext.Current.Server.MapPath("../Monitor/sampling/template/WorkTaskSheet.xls"), FileMode.Open, FileAccess.Read);
        }

        HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);
        ISheet       sheet = hssfworkbook.GetSheet("Sheet1");
        string       strTaskType = "", strMonitorList = "", Monitor = "", strWorkContent = "";
        DataTable    dt = GetPendingPlanDataTable();

        //插入委托书单号
        if (dt.Rows.Count > 0)
        {
            sheet.GetRow(4).GetCell(1).SetCellValue(dt.Rows[0]["TICKET_NUM"].ToString());
            sheet.GetRow(4).GetCell(6).SetCellValue(dt.Rows[0]["REPORT_CODE"].ToString());
            strTaskType = getDictName(dt.Rows[0]["CONTRACT_TYPE"].ToString(), "Contract_Type");
            sheet.GetRow(5).GetCell(1).SetCellValue(strTaskType + "任务");
            sheet.GetRow(5).GetCell(7).SetCellValue(dt.Rows[0]["CONTRACT_CODE"].ToString());

            string[] strMonitroTypeArr = dt.Rows[0]["TEST_TYPE"].ToString().Split(';');
            //string[] strMonitroTypeArr = dt.Rows[0]["TEST_TYPES"].ToString().Split(';');
            //foreach (string str in strMonitroTypeArr) {
            //    string strMonitor = "";
            //    strMonitor = GetMonitorName(str);
            //    strMonitorList += (strMonitor == "水和废水" ? "废水" : (strMonitor == "气和废气" ? "废气" : strMonitor)) + "、";
            //}
            // strMonitorList = strMonitorList.Substring(0, strMonitorList.Length - 1);
            TMisContractPointFreqVo objItems = new TMisContractPointFreqVo();
            objItems.CONTRACT_ID = "";
            DataTable dts = new TMisContractPointFreqLogic().GetPointMonitorInforForPlan(objItems, dt.Rows[0]["ID"].ToString());
            if (dts.Rows.Count > 0)
            {
                strMonitorList = dts.Rows[0][1].ToString();
            }
            sheet.GetRow(7).GetCell(1).SetCellValue(strMonitorList);
            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";
                    }
                }
            }
            //获取当前监测类别信息
            DataTable dtMonitor = GetPendingPlanDistinctMonitorDataTable();
            DataTable dtPoint = GetPendingPlanPointDataTable();
            string    strOutValuePoint = "", strOutValuePointItems = "";
            int       IS_SAMPLEDEPT  = 0; //是否存在现场监测项目
            int       IS_CERTIFICATE = 0; //是否存在实验室监测项目
            if (dtMonitor.Rows.Count > 0)
            {
                foreach (DataRow drr in dtMonitor.Rows)
                {
                    string    strMonitorName = "", strPointName = "";
                    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["POINT_NAME"].ToString() + "、";

                            //获取当前点位的监测项目
                            DataTable dtPointItems = GetPendingPlanPointItemsDataTable(drrPoint["CONTRACT_POINT_ID"].ToString());
                            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() + "、";

                                    if (drItems["IS_SAMPLEDEPT"].ToString() == "是")
                                    {
                                        IS_SAMPLEDEPT = 1;
                                    }
                                    if (drItems["IS_SAMPLEDEPT"].ToString() == "否")
                                    {
                                        IS_CERTIFICATE = 1;
                                    }
                                }
                                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(9).GetCell(1).SetCellValue(strWorkContent);
            string strLinkPerple = "";
            //if (dt.Rows[0]["CONTRACT_TYPE"].ToString() == "02" || dt.Rows[0]["CONTRACT_TYPE"].ToString() == "03")//应急或者管理类的  strMonitorList
            if (strMonitorList == "02" || strMonitorList == "03")//应急或者管理类的  strMonitorList
            {
                strLinkPerple += "联系人:" + dt.Rows[0]["CONTACT_NAME"].ToString() + " \n";
                strLinkPerple += "联系电话:" + dt.Rows[0]["PHONE"].ToString() + "\n";
                strLinkPerple += "报告编写人:韩永博 \n";
            }
            else
            {
                #region//暂不用代码
                //string[] strMonitroType = dt.Rows[0]["TEST_TYPE"].ToString().Split(';');
                //foreach (string strs in strMonitroType)
                //{
                //    string strMonitors = "";
                //    strMonitors = GetMonitorName(strs);
                //    if (strMonitors == "水和废水")
                //    {
                //        Monitor = "水";
                //    }
                //    else if (strMonitors == "气和废气")
                //    {
                //        Monitor = "气";
                //    }
                //    else if (strMonitors == "固废和土壤")
                //    {
                //        Monitor = "固体";
                //    }
                //    else if (strMonitors.Contains("噪声"))
                //    {
                //        Monitor = "噪声";
                //    }
                //    Monitor = Monitor + "、";
                //}
                //Monitor = Monitor.Substring(0, Monitor.Length - 1);
                #endregion
                if (strMonitorList == "水" || strMonitorList == "固体")
                {
                    strLinkPerple += "联系人:" + dt.Rows[0]["CONTACT_NAME"].ToString() + " \n";
                    strLinkPerple += "联系电话:" + dt.Rows[0]["PHONE"].ToString() + "\n";
                    strLinkPerple += "报告编写人:韩永博 \n";
                }
                else if (strMonitorList == "气" || strMonitorList == "噪声")
                {
                    strLinkPerple += "联系人:" + dt.Rows[0]["CONTACT_NAME"].ToString() + " \n";
                    strLinkPerple += "联系电话:" + dt.Rows[0]["PHONE"].ToString() + "\n";
                    strLinkPerple += "报告编写人:马振芳\n";
                }
                else if (strMonitorList == "水、气、声、固体")
                {
                    strLinkPerple += "联系人:" + dt.Rows[0]["CONTACT_NAME"].ToString() + " \n";
                    strLinkPerple += "联系电话:" + dt.Rows[0]["PHONE"].ToString() + "\n";
                    strLinkPerple += "报告编写人:王志远\n";
                }
            }
            //strLinkPerple += "联系人:" + dt.Rows[0]["CONTACT_NAME"].ToString() + "\n";
            //strLinkPerple += "联系电话:" + dt.Rows[0]["PHONE"].ToString() + "\n";
            //if (!String.IsNullOrEmpty(dt.Rows[0]["PROJECT_ID"].ToString()))
            //{
            //    strLinkPerple += "项目负责人:" + GetUserName(dt.Rows[0]["PROJECT_ID"].ToString());
            //}
            //else
            //{
            //    strLinkPerple += "报告编写:";
            //}

            sheet.GetRow(10).GetCell(1).SetCellValue(strLinkPerple);

            //任务来源
            sheet.GetRow(6).GetCell(1).SetCellValue(dt.Rows[0]["COMPANY_NAME"].ToString());
            //接收科室
            string strJSKS = "";
            strJSKS += "现场室、";
            //if (IS_SAMPLEDEPT == 1)
            //{
            //    strJSKS += "现场室、";
            //}
            if (IS_CERTIFICATE == 1)
            {
                strJSKS += "实验室、";
            }
            sheet.GetRow(8).GetCell(1).SetCellValue(strJSKS.TrimEnd('、'));

            if (!String.IsNullOrEmpty(dt.Rows[0]["ASKING_DATE"].ToString()))
            {
                sheet.GetRow(11).GetCell(1).SetCellValue(DateTime.Parse(dt.Rows[0]["ASKING_DATE"].ToString()).ToString("yyyy-MM-dd"));
            }
            //sheet.GetRow(11).GetCell(3).SetCellValue(LogInfo.UserInfo.REAL_NAME);
            sheet.GetRow(11).GetCell(6).SetCellValue(DateTime.Now.ToString("yyyy-MM-dd"));
        }
        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();
        }
    }
    protected void ReturnAllTaskStep()
    {
        //任务对象
        TMisMonitorTaskVo objTask = new TMisMonitorTaskLogic().Details(this.TASK_ID.Value);
        //子任务信息
        TMisMonitorSubtaskVo objSubTask = new TMisMonitorSubtaskLogic().Details(new TMisMonitorSubtaskVo()
        {
            TASK_ID    = this.TASK_ID.Value,
            MONITOR_ID = this.dllMonitor.SelectedValue
        });
        //样品信息
        TMisMonitorSampleInfoVo objSample = new TMisMonitorSampleInfoLogic().Details(new TMisMonitorSampleInfoVo()
        {
            SUBTASK_ID = objSubTask.ID,
            QC_TYPE    = "0"
        });
        //样品结果信息
        DataTable dtResult = new TMisMonitorResultLogic().SelectResultAndAppWithSubtaskID(objSubTask.ID);
        //校阅
        //委托书对象
        TMisContractVo objContract = new TMisContractLogic().Details(objTask.CONTRACT_ID);
        //预约表
        TMisContractPlanVo objPlan = new TMisContractPlanLogic().Details(new TMisContractPlanVo()
        {
            CONTRACT_ID = objContract.ID
        });
        //预约频次表(已预约未办理数)
        TMisContractPointFreqVo objPointFreq = new TMisContractPointFreqLogic().Details(new TMisContractPointFreqVo()
        {
            CONTRACT_ID = objContract.ID
        });
        //自送样预约数(已预约未办理数)
        TMisContractSamplePlanVo objSamplePlan = new TMisContractSamplePlanLogic().Details(new TMisContractSamplePlanVo()
        {
            CONTRACT_ID = objContract.ID,
        });

        #region 暂行的定制生成任务追踪方法 页面HTML构建
        //定义已处理DIV样式
        string strDivHas = "<div style='width:150px;height:auto;background-color:#5a8f5a;text-align: center;vertical-align: middle;'>{0}</div>";
        //定义待处理DIV样式
        string strDivWait = "<div style='width:150px;height:auto;background-color:#de9a1d;text-align: center;vertical-align: middle;'>{0}</div>";
        //定义特殊处理DIV样式
        //string strDivSepecial = "<div style='width:100px;height:50px;background-color:#e34323;text-align: center;vertical-align: middle;'>{0}</div";
        //定义未处理DIV样式
        //string strDivNo = "<div style='width:100px;height:50px;background-color:#a9a9a9;text-align: center;vertical-align: middle;'>{0}</div>";

        #region 办理人
        //采样负责人
        string strSampleManager = GetSampleManager(objSubTask.SAMPLING_MANAGER_ID);
        //交接人
        string strSampleAccept = GetDefaultOrFirstDutyUser("sample_allocation_sheet", this.dllMonitor.SelectedValue);
        //采样任务分配人
        string strSampleSender = GetDefaultOrFirstDutyUser("duty_other_sampling", this.dllMonitor.SelectedValue);
        //采样后质控人
        string strQcEnd = GetDefaultOrFirstDutyUser("sample_qc_end", this.dllMonitor.SelectedValue);
        //分析任务分配人
        string strAnalyseSender = GetDefaultOrFirstDutyUser("duty_other_analyse", this.dllMonitor.SelectedValue);
        //校核人
        string strAnalyseChecker = GetDefaultOrFirstDutyUser("duty_other_audit ", this.dllMonitor.SelectedValue);
        //复核人
        string strAnalyseAgainChecker = GetDefaultOrFirstDutyUser("duty_other_analyse_result", this.dllMonitor.SelectedValue);
        //审核人
        string strQcChecker = GetDefaultOrFirstDutyUser("duty_other_analyse_control", this.dllMonitor.SelectedValue);
        #endregion

        Table table1 = new Table();
        table1.CssClass = "tMain";
        TableRow  row1  = new TableRow();//委托流程连接
        TableCell cell1 = new TableCell();
        cell1.Text = string.Format(strDivHas, "委托流程");
        row1.Cells.Add(cell1);
        table1.Rows.Add(row1);
        //是否已预约
        if (!string.IsNullOrEmpty(objPointFreq.ID))
        {
            if (objPointFreq.IF_PLAN == null)//未预约
            {
                table1 = GetCommonRow(table1, strDivWait, "采样预约", "");

                this.divSample.Controls.Add(table1);
                return;
            }
            else if (objPointFreq.IF_PLAN == "0")//已预约未办理
            {
                table1 = GetCommonRow(table1, strDivHas, "采样预约", "");
            }
        }
        //自送样 预约
        if (objSamplePlan.IF_PLAN == "0")//未预约
        {
            table1 = GetCommonRow(table1, strDivWait, "送样预约", "");
            this.divSample.Controls.Add(table1);
            return;
        }
        else if (objSamplePlan.IF_PLAN == "1")//已预约
        {
            table1 = GetCommonRow(table1, strDivWait, "送样预约", "");
            this.divSample.Controls.Add(table1);
            return;
        }
        else if (objSamplePlan.IF_PLAN == "2")//预约办理
        {
            table1 = GetCommonRow(table1, strDivHas, "送样预约", "");
        }
        //是否预约办理
        if (objPlan.ID != "")
        {
            if (objPlan.HAS_DONE == "1")//已办理
            {
                table1 = GetCommonRow(table1, strDivHas, "预约办理", strSampleSender);
            }
            else if (objPlan.HAS_DONE == "0" || string.IsNullOrEmpty(objPlan.HAS_DONE))
            {
                table1 = GetCommonRow(table1, strDivWait, "预约办理", strSampleSender);

                this.divSample.Controls.Add(table1);
                return;
            }
        }
        //是否采样
        if (objSubTask.TASK_STATUS == "02")
        {
            table1 = GetCommonRow(table1, strDivWait, "采样", strSampleManager);
        }
        //样品交接
        if (objSubTask.TASK_STATUS == "021")
        {
            if (!string.IsNullOrEmpty(objPlan.ID))
            {
                table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
            }
            table1 = GetCommonRow(table1, strDivWait, "样品交接", strSampleAccept);
        }
        //分析任务分配
        DataRow[] dr1 = dtResult.Select(" RESULT_STATUS='01'");//过滤过分析分配环节任务
        //分析结果录入
        DataRow[] dr2 = dtResult.Select(" RESULT_STATUS='20'");
        //数据审核
        DataRow[] dr3 = dtResult.Select(" RESULT_STATUS='30'");
        //分析室主任审核
        DataRow[] dr4 = dtResult.Select(" RESULT_STATUS='40'");
        //技术室主任审核
        DataRow[] dr5 = dtResult.Select(" RESULT_STATUS='50'");
        if (objSubTask.TASK_STATUS == "03")
        {
            if (dr1.Length > 0)//环节在分析任务分配
            {
                if (!string.IsNullOrEmpty(objPlan.ID))
                {
                    table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
                }
                table1 = GetCommonRow(table1, strDivHas, "样品交接", strSampleAccept);
                table1 = GetCommonRow(table1, strDivWait, "分析任务分配", strAnalyseSender);
            }
            else
            {
                if (!string.IsNullOrEmpty(objPlan.ID))
                {
                    table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
                }
                table1 = GetCommonRow(table1, strDivHas, "样品交接", strSampleAccept);
                table1 = GetCommonRow(table1, strDivHas, "分析任务分配", strAnalyseSender);
                table1 = GetResultRow(table1, strDivHas, strDivWait, "分析结果录入", dtResult);

                if (dr2.Length > 0)     //结果提交不完全时
                {
                    if (dr5.Length > 0) //流程已到技术室审核环节(最后环节)
                    {
                        table1 = GetCommonRow(table1, strDivWait, "数据审核", strAnalyseChecker);
                        table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", strAnalyseAgainChecker);
                        table1 = GetCommonRow(table1, strDivWait, "技术室主任审核", strQcChecker);
                    }
                    else
                    {
                        if (dr4.Length > 0)//流程仅到分析室审核
                        {
                            table1 = GetCommonRow(table1, strDivWait, "数据审核", strAnalyseChecker);
                            table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", strAnalyseAgainChecker);
                        }
                        else
                        {
                            if (dr3.Length > 0)//流程仅到数据审核
                            {
                                table1 = GetCommonRow(table1, strDivWait, "数据审核", strAnalyseChecker);
                            }
                        }
                    }
                }
                else//结果提交完全时
                {
                    if (dr3.Length > 0)//数据审核不完全
                    {
                        table1 = GetCommonRow(table1, strDivWait, "数据审核", strAnalyseChecker);
                    }
                    else
                    {
                        table1 = GetCommonRow(table1, strDivHas, "数据审核", strAnalyseChecker);
                    }
                    if (dr4.Length > 0)//分析审核不完全
                    {
                        table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", strAnalyseAgainChecker);
                    }
                    else if (dr3.Length == 0)//已经全部发送
                    {
                        table1 = GetCommonRow(table1, strDivHas, "分析室主任审核", strAnalyseAgainChecker);
                    }
                    if (dr5.Length > 0)                                                    //流程已到技术室审核环节(最后环节)
                    {
                        if (objSubTask.TASK_STATUS == "09" && objTask.TASK_STATUS == "09") //分析流程完成
                        {
                            table1 = GetCommonRow(table1, strDivHas, "技术室主任审核", strQcChecker);
                        }
                        else
                        {
                            table1 = GetCommonRow(table1, strDivWait, "技术室主任审核", strQcChecker);
                        }
                    }
                }
            }
        }
        else if (objTask.TASK_STATUS == "09" && objSubTask.TASK_STATUS == "09")//报告
        {
            if (!string.IsNullOrEmpty(objPlan.ID))
            {
                table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
            }
            table1 = GetCommonRow(table1, strDivHas, "样品交接", strSampleAccept);
            table1 = GetCommonRow(table1, strDivHas, "分析任务分配", strAnalyseSender);
            table1 = GetResultRow(table1, strDivHas, strDivWait, "分析结果录入", dtResult);

            table1 = GetCommonRow(table1, strDivHas, "数据审核", strAnalyseChecker);
            table1 = GetCommonRow(table1, strDivHas, "分析室主任审核", strAnalyseAgainChecker);
            table1 = GetCommonRow(table1, strDivHas, "技术室主任审核", strQcChecker);

            table1.Rows.Add(GetFollowRow());

            TableRow  row  = new TableRow();//报告流程连接
            TableCell cell = new TableCell();
            // cell.Text = string.Format(strDivHas, "<a href='#' onclick='ShowReport(" + this.TASK_ID.Value + ");'>报告流程</a>");
            cell.Text = string.Format(strDivHas, "报告流程");
            row.Cells.Add(cell);
            table1.Rows.Add(row);
        }
        this.divSample.Controls.Add(table1);
        #endregion
    }
    /// <summary>
    /// 保存默认监测计划岗位负责人 Create By Castle (胡方扬) 2013-4-1
    /// </summary>
    /// <returns></returns>
    public static void SavePlanPeopleForEnv(string strPlanId)
    {
        DataTable dtMonitor = new DataTable();
        TMisContractPointFreqVo objItemspan = new TMisContractPointFreqVo();

        objItemspan.IF_PLAN = "0";
        dtMonitor           = new TMisContractPointFreqLogic().GetPointMonitorInforForPlan(objItemspan, strPlanId);

        //DataTable dtMonitor = GetPointMonitorInfor(strPlanId);

        DataTable  dtTemple     = new DataTable();
        TSysDutyVo objItemspan1 = new TSysDutyVo();

        objItemspan1.DICT_CODE = "duty_sampling";
        dtTemple = new TSysDutyLogic().SelectTableDutyUser(objItemspan1);
        //DataTable dtTemple = GetMonitorDutyInforTable();
        DataTable dtMonitorDutyUser = new DataTable();

        dtMonitorDutyUser = dtTemple.Copy();

        dtMonitorDutyUser.Clear();
        //获取默认负责人
        for (int n = 0; n < dtMonitor.Rows.Count; n++)
        {
            DataRow[] drowArr = dtTemple.Select(" IF_DEFAULT='0' AND MONITOR_TYPE_ID='" + dtMonitor.Rows[0]["ID"].ToString() + "'");
            if (drowArr.Length > 0)
            {
                foreach (DataRow drow in drowArr)
                {
                    dtMonitorDutyUser.ImportRow(drow);
                }
                dtMonitorDutyUser.AcceptChanges();
            }
            else
            {
                drowArr = dtTemple.Select(" MONITOR_TYPE_ID='" + dtMonitor.Rows[0]["ID"].ToString() + "'");
                if (drowArr.Length > 0)
                {
                    dtMonitorDutyUser.ImportRow(drowArr[0]);
                }
                dtMonitorDutyUser.AcceptChanges();
            }
        }

        //if (drowArr.Length > 0)
        //{
        //    foreach (DataRow drow in drowArr)
        //    {
        //        dtMonitorDutyUser.ImportRow(drow);
        //    }
        //    dtMonitorDutyUser.AcceptChanges();
        //}
        string strMonitorId = "", strUserId = "";

        foreach (DataRow drr in dtMonitor.Rows)
        {
            for (int i = 0; i < dtMonitorDutyUser.Rows.Count; i++)
            {
                if (drr["ID"].ToString() == dtMonitorDutyUser.Rows[i]["MONITOR_TYPE_ID"].ToString())
                {
                    strMonitorId += drr["ID"].ToString() + ";";
                    strUserId    += dtMonitorDutyUser.Rows[i]["USERID"].ToString() + ";";
                }
            }
        }
        TMisContractUserdutyVo objItems = new TMisContractUserdutyVo();

        if (!String.IsNullOrEmpty(strPlanId))
        {
            objItems.CONTRACT_PLAN_ID = strPlanId;
            string[] strMonitArr = null, strUserArr = null;
            if (!String.IsNullOrEmpty(strMonitorId) && !String.IsNullOrEmpty(strUserId))
            {
                strMonitArr = strMonitorId.Substring(0, strMonitorId.Length - 1).Split(';');
                strUserArr  = strUserId.Substring(0, strUserId.Length - 1).Split(';');
                if (strMonitArr != null && strUserArr != null)
                {
                    new TMisContractUserdutyLogic().SaveContractPlanDutyForEnv(objItems, strMonitArr, strUserArr);
                }
            }
        }
    }
    protected void ReturnAllTaskStep()
    {
        //任务对象
        TMisMonitorTaskVo objTask = new TMisMonitorTaskLogic().Details(this.TASK_ID.Value);
        //子任务信息
        TMisMonitorSubtaskVo objSubTask = new TMisMonitorSubtaskLogic().Details(new TMisMonitorSubtaskVo()
        {
            TASK_ID    = this.TASK_ID.Value,
            MONITOR_ID = this.dllMonitor.SelectedValue
        });
        //样品信息
        TMisMonitorSampleInfoVo objSample = new TMisMonitorSampleInfoLogic().Details(new TMisMonitorSampleInfoVo()
        {
            SUBTASK_ID = objSubTask.ID,
            QC_TYPE    = "0"
        });
        //样品结果信息
        DataTable dtResult = new TMisMonitorResultLogic().SelectResultAndAppWithSubtaskID(objSubTask.ID);
        //校阅
        //委托书对象
        TMisContractVo objContract = new TMisContractLogic().Details(objTask.CONTRACT_ID);
        //预约表
        TMisContractPlanVo objPlan = new TMisContractPlanLogic().Details(new TMisContractPlanVo()
        {
            CONTRACT_ID = objContract.ID
        });
        //预约频次表(已预约未办理数)
        int intIsPlanNoDo = new TMisContractPointFreqLogic().GetSelectResultCount(new TMisContractPointFreqVo()
        {
            CONTRACT_ID = objContract.ID,
            IF_PLAN     = "0"
        });

        #region 暂行的定制生成任务追踪方法 页面HTML构建
        //定义已处理DIV样式
        string strDivHas = "<div style='width:150px;height:50px;background-color:#5a8f5a;text-align: center;vertical-align: middle;'>{0}</div>";
        //定义待处理DIV样式
        string strDivWait = "<div style='width:150px;height:50px;background-color:#de9a1d;text-align: center;vertical-align: middle;'>{0}</div>";
        //定义特殊处理DIV样式
        //string strDivSepecial = "<div style='width:100px;height:50px;background-color:#e34323;text-align: center;vertical-align: middle;'>{0}</div";
        //定义未处理DIV样式
        //string strDivNo = "<div style='width:100px;height:50px;background-color:#a9a9a9;text-align: center;vertical-align: middle;'>{0}</div>";

        Table table1 = new Table();
        table1.CssClass = "tMain";
        TableRow  row1  = new TableRow();//委托流程连接
        TableCell cell1 = new TableCell();
        cell1.Text = string.Format(strDivHas, "<a href='#' onclick='ShowContract();'>委托流程</a>");
        row1.Cells.Add(cell1);
        table1.Rows.Add(row1);
        //是否已预约
        if (intIsPlanNoDo > 0)
        {
            table1 = GetCommonRow(table1, strDivHas, "采样预约", "");
        }
        else
        {
            table1 = GetCommonRow(table1, strDivWait, "采样预约", "");

            this.divSample.Controls.Add(table1);
            return;
        }
        //是否预约办理
        if (objPlan.HAS_DONE == "1")//已办理
        {
            table1 = GetCommonRow(table1, strDivHas, "预约办理", "");
        }
        else
        {
            table1 = GetCommonRow(table1, strDivWait, "预约办理", "");

            this.divSample.Controls.Add(table1);
            return;
        }
        //采样负责人
        string strSampleManager = GetSampleManager(objSubTask.SAMPLING_MANAGER_ID);
        //交接人
        string    strSampleAccept = string.Empty;
        DataTable dtSampleAccept  = new TSysUserDutyLogic().SelectUserDuty("sample_allocation_sheet", this.dllMonitor.SelectedValue);
        if (dtSampleAccept.Rows.Count > 0)
        {
            strSampleAccept = GetSampleManager(dtSampleAccept.Rows[0]["USERID"].ToString());
        }
        //是否采样
        if (objSubTask.TASK_STATUS == "02")
        {
            table1 = GetCommonRow(table1, strDivWait, "采样", strSampleManager);
        }
        //样品交接
        if (objSubTask.TASK_STATUS == "021")
        {
            table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
            table1 = GetCommonRow(table1, strDivWait, "样品交接", strSampleAccept);
        }
        //分析任务分配
        DataRow[] dr1 = dtResult.Select(" RESULT_STATUS='01'");//过滤过分析分配环节任务
        //分析结果录入
        DataRow[] dr2 = dtResult.Select(" RESULT_STATUS='20'");
        //数据审核
        DataRow[] dr3 = dtResult.Select(" RESULT_STATUS='30'");
        //分析室主任审核
        DataRow[] dr4 = dtResult.Select(" RESULT_STATUS='40'");
        //技术室主任审核
        DataRow[] dr5 = dtResult.Select(" RESULT_STATUS='50'");
        if (objSubTask.TASK_STATUS == "03")
        {
            if (dr1.Length > 0)//环节在分析任务分配
            {
                table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
                table1 = GetCommonRow(table1, strDivHas, "样品交接", strSampleAccept);
                table1 = GetCommonRow(table1, strDivWait, "分析任务分配", "");
            }
            else
            {
                table1 = GetCommonRow(table1, strDivHas, "采样", strSampleManager);
                table1 = GetCommonRow(table1, strDivHas, "样品交接", strSampleAccept);
                table1 = GetCommonRow(table1, strDivHas, "分析任务分配", "");
                table1 = GetResultRow(table1, strDivHas, strDivWait, "分析结果录入", dtResult);

                if (dr2.Length > 0)     //结果提交不完全时
                {
                    if (dr5.Length > 0) //流程已到技术室审核环节(最后环节)
                    {
                        table1 = GetCommonRow(table1, strDivWait, "数据审核", "");
                        table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", "");
                        table1 = GetCommonRow(table1, strDivWait, "技术室主任审核", "");
                    }
                    else
                    {
                        if (dr4.Length > 0)//流程仅到分析室审核
                        {
                            table1 = GetCommonRow(table1, strDivWait, "数据审核", "");
                            table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", "");
                        }
                        else
                        {
                            if (dr3.Length > 0)//流程仅到数据审核
                            {
                                table1 = GetCommonRow(table1, strDivWait, "数据审核", "");
                            }
                        }
                    }
                }
                else//结果提交完全时
                {
                    if (dr3.Length > 0)//数据审核不完全
                    {
                        table1 = GetCommonRow(table1, strDivWait, "数据审核", "");
                    }
                    else
                    {
                        table1 = GetCommonRow(table1, strDivHas, "数据审核", "");
                    }
                    if (dr4.Length > 0)//分析审核不完全
                    {
                        table1 = GetCommonRow(table1, strDivWait, "分析室主任审核", "");
                    }
                    else
                    {
                        table1 = GetCommonRow(table1, strDivHas, "分析室主任审核", "");
                    }
                    if (dr5.Length > 0)                                                    //流程已到技术室审核环节(最后环节)
                    {
                        if (objSubTask.TASK_STATUS == "09" && objTask.TASK_STATUS == "09") //分析流程完成
                        {
                            table1 = GetCommonRow(table1, strDivHas, "技术室主任审核", "");
                            TableRow  row  = new TableRow();//委托流程连接
                            TableCell cell = new TableCell();
                            cell.Text = string.Format(strDivHas, "<a href='#' onclick='ShowReport();'>报告流程</a>");
                            row.Cells.Add(cell);
                            table1.Rows.Add(row);
                        }
                        else
                        {
                            table1 = GetCommonRow(table1, strDivWait, "技术室主任审核", "");
                        }
                    }
                }
            }
        }
        this.divSample.Controls.Add(table1);
        #endregion
    }