Esempio n. 1
0
        public override ActionResult PageView()
        {
            string userName = this.GetQueryString("SystemName");

            if (!string.IsNullOrEmpty(userName))
            {
                string pwd = this.GetQueryString("PWD");
                string sql = "select count(0) from S_A_User where Code ='" + userName + "'";
                var    db  = SQLHelper.CreateSqlHelper(ConnEnum.Base);
                if (Convert.ToInt32(db.ExecuteScalar(sql)) > 0 && !String.IsNullOrEmpty(userName))
                {
                    FormulaHelper.ContextSet("AgentUserLoginName", userName);
                    System.Web.Security.FormsAuthentication.SetAuthCookie(userName, false);
                }
            }
            return(base.PageView());
        }
Esempio n. 2
0
        public List <RoutineDTO> _StartRoutine(string id)
        {
            var userAccount = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            List <ButtonInfo> buttonInfoList = flowService.JsonGetFlowButtons("", "");

            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");


            var list = new List <RoutineDTO>();

            foreach (var btn in buttonInfoList)
            {
                if (btn.routingParams != null)
                {
                    var routine = new RoutineDTO();
                    routine.ID = btn.id;

                    if (btn.routingParams.selectMode == "SelectOneUser" || btn.routingParams.selectMode == "SelectOneUserInScope")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (btn.routingParams.selectMode == "SelectMultiUser" ||
                             btn.routingParams.selectMode == "SelectMultiUserInScope" ||
                             btn.routingParams.selectMode == "SelectOneOrg" ||
                             btn.routingParams.selectMode == "SelectMultiOrg")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                    routine.OwnerUserIDs     = btn.routingParams.userIDs;
                    routine.RoutineName      = btn.text;
                    routine.MustInputComment = btn.routingParams.mustInputComment;

                    list.Add(routine);
                }
            }
            return(list);
        }
Esempio n. 3
0
        public TaskDTO _GetTaskDetail(string id)
        {
            var formInstanceID = Request.RequestUri.ParseQueryString().Get("FormInstanceID");
            var userID         = Request.RequestUri.ParseQueryString().Get("UserID");
            var userAccount    = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            S_WF_InsTaskExec task = GetTaskExec(id);
            TaskDTO          dto  = new TaskDTO();

            dto.ID                = task.ID;
            dto.CreateTime        = task.CreateTime;
            dto.FlowName          = task.S_WF_InsFlow.FlowName;
            dto.TaskName          = task.S_WF_InsTask.TaskName;
            dto.FlowCategory      = task.S_WF_InsFlow.FlowCategory;
            dto.FormInstanceID    = task.S_WF_InsFlow.FormInstanceID;
            dto.FormInstanceCode  = task.S_WF_InsFlow.S_WF_InsDefFlow.TableName;
            dto.FormDic           = task.S_WF_InsFlow.FormDic;
            dto.SendTaskUserNames = task.S_WF_InsTask.SendTaskUserNames;
            dto.CreateUserID      = task.S_WF_InsFlow.CreateUserID;
            dto.CreateUserName    = task.S_WF_InsFlow.CreateUserName;

            //新加字段
            dto.ExecTime     = task.ExecTime;
            dto.IsFinished   = task.ExecTime.HasValue;
            dto.TaskUserID   = task.ExecUserID;
            dto.TaskUserName = task.ExecUserName;
            dto.FlowDefCode  = task.S_WF_InsFlow.S_WF_InsDefFlow.Code;

            dto.Routines = GetRountineList(formInstanceID, id, dto.FormDic);


            dto.DefStepID   = task.S_WF_InsTask.S_WF_InsDefStep.DefStepID;
            dto.DefStepName = task.S_WF_InsTask.S_WF_InsDefStep.Name;

            dto.HideAdvice = task.S_WF_InsTask.S_WF_InsDefStep.HideAdvice == "1";

            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");
            return(dto);
        }
        //public override bool ValiateToken
        //{
        //    get
        //    {
        //        return false;
        //    }
        //}

        public override ActionResult PageView()
        {
            string userName = this.GetQueryString("SystemName");

            if (!string.IsNullOrEmpty(userName))
            {
                userName = HttpUtility.UrlDecode(userName);
                string pwd = this.GetQueryString("PWD");
                string sql = "select count(0) from S_A_User where Code ='" + userName + "'";
                var    db  = SQLHelper.CreateSqlHelper(ConnEnum.Base);
                if (Convert.ToInt32(db.ExecuteScalar(sql)) > 0 && !String.IsNullOrEmpty(userName))
                {
                    FormulaHelper.ContextSet("AgentUserLoginName", userName);
                    FormulaHelper.SetAuthCookie(userName);
                }
            }
            var ArchiveType = System.Configuration.ConfigurationManager.AppSettings["ArchiveType"];

            ViewBag.ArchiveType = string.IsNullOrEmpty(ArchiveType) ? "PdfFile" : ArchiveType;
            return(base.PageView());
        }
Esempio n. 5
0
        public List <RoutineDTO> GetRountineLists(string formInstanceID, string id, [FromBody] PostSubmitTaskDTO taskDto)
        {
            var userAccount = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            string            formdata       = JsonHelper.ToJson(taskDto.FormDic);
            FlowService       flowservice    = new FlowService(this, taskDto.FormDic, "", id);
            List <ButtonInfo> buttonInfoList = new List <ButtonInfo>();

            if (string.IsNullOrEmpty(id))
            {
                buttonInfoList = flowservice.JsonGetFlowButtons("", "");
                var list = new List <RoutineDTO>();
                foreach (var btn in buttonInfoList)
                {
                    if (btn.routingParams != null)
                    {
                        var routine = new RoutineDTO();
                        routine.ID = btn.id;
                        if (btn.routingParams.userIDs == "")
                        {
                            if (btn.routingParams.selectMode == "SelectOneUser")
                            {
                                routine.OwnerType = OwnerType.Single;
                            }
                            else if (btn.routingParams.selectMode == "SelectMultiUser")
                            {
                                routine.OwnerType = OwnerType.Multi;
                            }
                            else if (!string.IsNullOrEmpty(btn.routingParams.userIDsFromField) ||
                                     !string.IsNullOrEmpty(btn.routingParams.orgIDFromField) ||
                                     !string.IsNullOrEmpty(btn.routingParams.roleIDsFromField))
                            {
                                routine.OwnerType = OwnerType.None;
                            }
                            else
                            {
                                routine.OwnerType = OwnerType.None;
                            }
                        }
                        else
                        {
                            if (btn.routingParams.selectMode == "SelectOneUserInScope" || btn.routingParams.selectMode == "SelectOnePrjUser")
                            {
                                routine.OwnerType = OwnerType.Single;
                            }
                            else if (btn.routingParams.selectMode == "SelectMultiUserInScope" || btn.routingParams.selectMode == "SelectMultiPrjUser")
                            {
                                routine.OwnerType = OwnerType.Multi;
                            }
                            else
                            {
                                routine.OwnerType = OwnerType.Special;
                            }

                            if (btn.routingParams.selectAgain)
                            {
                                if (btn.routingParams.selectMode == "SelectOneUserInScope" || btn.routingParams.selectMode == "SelectOnePrjUser" || btn.routingParams.selectMode == "SelectOneUser")
                                {
                                    routine.OwnerType = OwnerType.Single;
                                    if (btn.routingParams.selectMode == "SelectOneUser")
                                    {
                                        routine.OwnerUserIDs = "";
                                    }
                                }
                                else if (btn.routingParams.selectMode == "SelectMultiUserInScope" || btn.routingParams.selectMode == "SelectMultiPrjUser" || btn.routingParams.selectMode == "SelectMultiUser")
                                {
                                    routine.OwnerType = OwnerType.Multi;
                                    if (btn.routingParams.selectMode == "SelectMultiUser")
                                    {
                                        routine.OwnerUserIDs = "";
                                    }
                                }
                            }
                        }
                        routine.OwnerUserIDs     = btn.routingParams.userIDs;
                        routine.RoutineName      = btn.text;
                        routine.MustInputComment = btn.routingParams.mustInputComment;

                        list.Add(routine);
                    }
                }
                return(list);
            }
            else
            {
                buttonInfoList = flowservice.JsonGetFlowButtons(formInstanceID, id, true);
            }


            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");
            List <RoutineDTO> Routines       = new List <RoutineDTO>();
            List <RoutineDTO> staticRoutines = new List <RoutineDTO>();

            for (var i = 0; i < buttonInfoList.Count; i++)
            {
                RoutineDTO routine;
                var        item = buttonInfoList[i];

                if (item.id == "btnDoBack" || item.id == "btnDoBackFirst" || item.id == "btnDoBackFirstReturn")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnDelegate" || item.id == "btnAsk")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.Single;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnCirculate")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.Multi;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnView" || item.id == "btnReply" || item.id == "btnWithdrawAsk" || item.id == "btnWithdraw" || item.id == "btnDelete")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id.StartsWith("btn"))
                {
                    //buttonInfoList.Remove(item);
                    //这句注释掉,否则循环都乱了
                    continue;
                }


                routine = new RoutineDTO
                {
                    ID               = item.id,
                    RoutineName      = item.text,
                    MustInputComment = item.routingParams.mustInputComment,
                    SelectAgain      = item.routingParams.selectAgain,
                    DefaultComment   = item.routingParams.defaultComment
                };
                Routines.Add(routine);
                routine.OwnerType    = OwnerType.None;
                routine.OwnerUserIDs = item.routingParams.userIDs;

                if (item.routingParams.flowComplete == true) //移动端在流程结束时不再选人
                {
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    continue;
                }


                if (item.routingParams.routingID.Contains(','))//分支路由不用选人
                {
                    routine.OwnerType = OwnerType.None;
                    continue;
                }

                if (item.routingParams.userIDs == "")
                {
                    if (item.routingParams.selectMode == "SelectOneUser")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (item.routingParams.selectMode == "SelectMultiUser")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else if (!string.IsNullOrEmpty(item.routingParams.userIDsFromField) ||
                             !string.IsNullOrEmpty(item.routingParams.orgIDFromField) ||
                             !string.IsNullOrEmpty(item.routingParams.roleIDsFromField))
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                }
                else
                {
                    if (item.routingParams.selectMode == "SelectOneUserInScope" || item.routingParams.selectMode == "SelectOnePrjUser")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (item.routingParams.selectMode == "SelectMultiUserInScope" || item.routingParams.selectMode == "SelectMultiPrjUser")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.Special;
                    }

                    if (item.routingParams.selectAgain)
                    {
                        if (item.routingParams.selectMode == "SelectOneUserInScope" || item.routingParams.selectMode == "SelectOnePrjUser" || item.routingParams.selectMode == "SelectOneUser")
                        {
                            routine.OwnerType = OwnerType.Single;
                            if (item.routingParams.selectMode == "SelectOneUser")
                            {
                                routine.OwnerUserIDs = "";
                            }
                        }
                        else if (item.routingParams.selectMode == "SelectMultiUserInScope" || item.routingParams.selectMode == "SelectMultiPrjUser" || item.routingParams.selectMode == "SelectMultiUser")
                        {
                            routine.OwnerType = OwnerType.Multi;
                            if (item.routingParams.selectMode == "SelectMultiUser")
                            {
                                routine.OwnerUserIDs = "";
                            }
                        }
                    }
                }
            }

            //排序需要与PC端一致,故反过来
            for (int i = 0; i < staticRoutines.Count; i++)
            {
                Routines.Add(staticRoutines[i]);
            }

            return(Routines);
        }
        public override ActionResult PageView()
        {
            string userName = this.GetQueryString("SystemName");

            if (!string.IsNullOrEmpty(userName))
            {
                userName = HttpUtility.UrlDecode(userName);
                string pwd = this.GetQueryString("PWD");
                string sql = "select count(0) from S_A_User where Code ='" + userName + "'";
                var    db  = SQLHelper.CreateSqlHelper(ConnEnum.Base);
                if (Convert.ToInt32(db.ExecuteScalar(sql)) > 0 && !String.IsNullOrEmpty(userName))
                {
                    FormulaHelper.ContextSet("AgentUserLoginName", userName);
                    FormulaHelper.SetAuthCookie(userName);
                }
            }

            base.PageView();
            string ID            = Request["ID"];
            string wbsValue      = string.Empty;
            string projectInfoID = string.Empty;
            string wbsID         = Request["WBSID"];
            string majorWBSID    = string.Empty;

            var entity = this.GetEntityByID <T_EXE_MajorPutInfo>(ID);

            if (entity == null)
            {
                projectInfoID = this.GetQueryString("ProjectInfoID");
                wbsValue      = Request["OutMajorValue"];
            }
            else
            {
                projectInfoID = entity.ProjectInfoID;
                wbsValue      = entity.OutMajorValue;
            }
            var projectInfo = this.GetEntityByID <S_I_ProjectInfo>(projectInfoID);

            if (projectInfo == null)
            {
                throw new Formula.Exceptions.BusinessException("未找到ID为【" + projectInfoID + "】的项目信息");
            }
            if (string.IsNullOrEmpty(wbsID))
            {
                wbsID = projectInfo.WBSRoot.ID;
            }
            else
            {
                var wbsNode   = this.GetEntityByID <S_W_WBS>(wbsID.Split(',').FirstOrDefault());
                var majorNode = wbsNode.Seniorities.FirstOrDefault(a => a.WBSType == WBSNodeType.Major.ToString());
                if (majorNode != null)
                {
                    majorWBSID = majorNode.ID;
                }
            }
            //根据项目下专业节点,将项目项目下专业节点的WBSVAlue和Name拼成一个枚举
            StringBuilder sb = new StringBuilder("\n");

            sb.AppendLine();
            sb.AppendFormat("\n var WBSID = '{0}'; \n var MajorWBSID = '{1}';", wbsID, majorWBSID);
            sb.AppendLine();
            ViewBag.Script += sb.ToString();
            return(View());
        }
Esempio n. 7
0
        public ActionResult MainContentElePower()
        {
            string userName = this.GetQueryString("SystemName");

            if (!string.IsNullOrEmpty(userName))
            {
                userName = HttpUtility.UrlDecode(userName);
                string pwd = this.GetQueryString("PWD");
                string sql = "select count(0) from S_A_User where Code ='" + userName + "'";
                var    db  = SQLHelper.CreateSqlHelper(ConnEnum.Base);
                if (Convert.ToInt32(db.ExecuteScalar(sql)) > 0 && !String.IsNullOrEmpty(userName))
                {
                    FormulaHelper.ContextSet("AgentUserLoginName", userName);
                    FormulaHelper.SetAuthCookie(userName);
                }
            }
            string projectInfoID = this.Request["ProjectInfoID"];
            var    dt            = this.SqlHelper.ExecuteDataTable(string.Format("select * from S_I_ProjectInfo where ID='{0}'", projectInfoID));
            var    projectInfo   = this.GetEntityByID <S_I_ProjectInfo>(projectInfoID);

            if (projectInfo == null || dt.Rows.Count == 0)
            {
                throw new Formula.Exceptions.BusinessException("未能获得指定项目信息");
            }
            ViewBag.ProjectInfo = projectInfo;
            var marketProjectInfoID = projectInfo.MarketProjectInfoID;

            #region QBSTree
            var baseConfig      = FormulaHelper.GetEntities <BaseConfigEntities>();
            var catagoryType    = QBSNodeType.Catagory.ToString();
            var qbsType         = QBSNodeType.QBS.ToString();
            var QBSCatagoryList = projectInfo.ProjectMode.S_T_QBSTemplate.Where(d => d.NodeType == catagoryType).OrderBy(d => d.SortIndex).ToList();
            var QBSList         = projectInfo.ProjectMode.S_T_QBSTemplate.Where(d => d.NodeType == qbsType).OrderBy(d => d.SortIndex).ToList();

            var uiFO = new Base.Logic.BusinessFacade.UIFO();
            List <QBSTemplateInfo> QBSResList = new List <QBSTemplateInfo>();
            var qualitative = QBSType.Qualitative.ToString();
            var quantify    = QBSType.Quantify.ToString();
            foreach (var item in QBSList)
            {
                var QBSInfo = new QBSTemplateInfo();
                this.UpdateEntity(QBSInfo, item.ToDic());
                QBSResList.Add(QBSInfo);

                var sql = item.SQL;
                if (string.IsNullOrEmpty(sql))
                {
                    continue;
                }
                var resSQL = uiFO.ReplaceString(sql, dt.Rows[0]);
                var connDt = SQLHelper.CreateSqlHelper(item.ConnName);
                var resDt  = connDt.ExecuteDataTable(resSQL);

                //定性
                if (item.QBSType == qualitative)
                {
                    if (resDt.Columns.Contains(CommonConst.QualitativeState) && resDt.Rows.Count != 0 && !string.IsNullOrEmpty(resDt.Rows[0][CommonConst.QualitativeState].ToString()))
                    {
                        QBSInfo.ResState = DateTime.Parse(resDt.Rows[0][CommonConst.QualitativeState].ToString()).ToString("yyyy-MM-dd");
                        QBSInfo.LinkUrl  = uiFO.ReplaceString(item.LinkUrl, resDt.Rows[0]);
                    }
                    else
                    {
                        QBSInfo.ResState = "";
                        QBSInfo.LinkUrl  = uiFO.ReplaceString(item.LinkUrl);
                    }
                }
                //定量
                else
                {
                    if (resDt.Columns.Contains(CommonConst.QuantifyNum) && resDt.Rows.Count != 0)
                    {
                        QBSInfo.ResState = resDt.Rows[0][CommonConst.QuantifyNum].ToString();
                        QBSInfo.LinkUrl  = uiFO.ReplaceString(item.LinkUrl, resDt.Rows[0]);
                    }
                    else
                    {
                        QBSInfo.ResState = "0";
                        QBSInfo.LinkUrl  = uiFO.ReplaceString(item.LinkUrl);
                    }
                }
            }
            ViewBag.QBSCatagoryList = QBSCatagoryList;
            ViewBag.QBSList         = QBSResList;
            #endregion

            #region 项目专业信息
            var projectType  = Project.Logic.WBSNodeType.Project.ToString();
            var majorType    = Project.Logic.WBSNodeType.Major.ToString();
            var wbsInfo      = this.entities.Set <S_W_WBS>().Where(d => d.ProjectInfoID == projectInfoID).OrderBy(a => a.Level).ThenBy(a => a.SortIndex).ToList();
            var majorWBSList = wbsInfo.Where(d => d.WBSType == projectType || d.WBSType == majorType).Select(d => new
            {
                Name          = d.Name,
                ProjectInfoID = d.ProjectInfoID,
                WBSType       = d.WBSType,
                WBSValue      = d.WBSValue
            }).Distinct().ToList();
            var obsUsers    = this.entities.Set <S_W_OBSUser>().Where(d => d.ProjectInfoID == projectInfoID).ToList();
            var OBSUserList = new List <OBSUserInfo>();
            foreach (var obsUser in obsUsers)
            {
                var obsInfo = new OBSUserInfo();
                this.UpdateEntity(obsInfo, obsUser.ToDic());
                var userInfo = FormulaHelper.GetUserInfoByID(obsUser.UserID);
                if (userInfo != null)
                {
                    obsInfo.TEL = userInfo.MobilePhone;

                    OBSUserList.Add(obsInfo);
                }
                #region 角色排序
                switch (obsUser.RoleCode)
                {
                default: obsInfo.SortIndex = 900; break;

                case "MajorPrinciple":
                    obsInfo.SortIndex = 100;
                    break;

                case "Designer":
                    obsInfo.SortIndex = 200;
                    break;

                case "Collactor":
                    obsInfo.SortIndex = 300;
                    break;

                case "Auditor":
                    obsInfo.SortIndex = 400;
                    break;

                case "Approver":
                    obsInfo.SortIndex = 400;
                    break;

                case "ProjectManager":
                    obsInfo.SortIndex = 10;
                    break;

                case "DesignManager":
                    obsInfo.SortIndex = 20;
                    break;
                }
                #endregion
            }
            var productList = this.entities.Set <S_E_Product>().Where(d => d.ProjectInfoID == projectInfoID).ToList();

            var workHourList = SQLHelper.CreateSqlHelper(ConnEnum.HR).ExecuteList <WorkHourViewList>(string.Format("select * from S_W_UserWorkHour where ProjectID='{0}'", projectInfoID));
            ViewBag.WBSInfo      = wbsInfo;
            ViewBag.ObsUserInfo  = OBSUserList;
            ViewBag.ProductList  = productList;
            ViewBag.WorkHourList = workHourList;

            var taskWorks = this.entities.Set <S_W_TaskWork>().Where(a => a.ProjectInfoID == projectInfoID).ToList();
            ViewBag.taskWorks = taskWorks;

            var costList         = FormulaHelper.GetEntities <MarketEntities>().Set <S_FC_CostInfo>().Where(a => a.ProjectID == marketProjectInfoID && a.ProjectType == Market.Logic.Const.defaultDirectCostType).ToList();
            var directCostValue  = costList.Where(a => a.CostType == Market.Logic.Const.defaultDirectCostType).Select(a => a.CostValue).Sum();
            var paymentCostValue = costList.Where(a => a.CostType != Market.Logic.Const.defaultDirectCostType).Select(a => a.CostValue).Sum();
            var totalCostValue   = costList.Select(a => a.CostValue).Sum();
            ViewBag.DirectValue      = string.Format("{0:N2}", directCostValue / 10000);
            ViewBag.PaymentCostValue = string.Format("{0:N2}", paymentCostValue / 10000);
            ViewBag.TotalCostValue   = string.Format("{0:N2}", totalCostValue / 10000);

            var productNumColumnOptionList = new Dictionary <string, object>();
            var printCountColumnOptionList = new Dictionary <string, object>();
            foreach (var wbs in majorWBSList)
            {
                var majorValue = "";
                if (wbs.WBSType != projectType)
                {
                    majorValue = wbs.WBSValue;
                }

                productNumColumnOptionList.Add("productNum_" + wbs.WBSValue, JsonHelper.ToJson(this.GetColumnChartOption(wbs.ProjectInfoID, "提交量", "ProductNum", majorValue)));
                printCountColumnOptionList.Add("printCount_" + wbs.WBSValue, JsonHelper.ToJson(this.GetColumnChartOption(wbs.ProjectInfoID, "出图量", "PrintCount", majorValue)));
            }
            ViewBag.ProductNumColumnOption = JsonHelper.ToJson(productNumColumnOptionList);
            ViewBag.PrintCountColumnOption = JsonHelper.ToJson(printCountColumnOptionList);

            #endregion

            #region 里程碑信息

            var milestoneList = this.entities.Set <S_P_MileStone>().Where(d => d.ProjectInfoID == projectInfoID).ToList();
            var prjBaseHelper = SQLHelper.CreateSqlHelper(ConnEnum.InfrasBaseConfig);
            var majorDt       = prjBaseHelper.ExecuteDataTable("select Name,Code from S_D_WBSAttrDefine where Type='Major'");
            var majorDic      = new Dictionary <string, string>();
            foreach (DataRow item in majorDt.Rows)
            {
                majorDic.Add(item["Code"].ToString(), item["Name"].ToString());
            }
            ViewBag.MileStoneList = milestoneList;
            ViewBag.MajorDic      = majorDic;
            var subProjectList = projectInfo.S_W_WBS.Where(d => d.WBSType == WBSNodeType.SubProject.ToString()).ToList();
            if ((subProjectList.Count == 0 && !projectInfo.WBSRoot.StructNodeInfo.ChildCode.Contains(WBSNodeType.SubProject.ToString())) ||
                milestoneList.Count == milestoneList.Count(a => a.WBSID == projectInfo.RootWBSID))   //兼容所有里程碑都挂在root节点上的情况
            {
                var list = new List <S_W_WBS>();
                list.Add(projectInfo.WBSRoot);
                ViewBag.MileStoneWBSList = list;
            }
            else
            {
                ViewBag.MileStoneWBSList = subProjectList;
            }

            #endregion

            return(View());
        }