コード例 #1
0
        public static PmsRelationship GetObjWbsStructure(int _level, int _fromOID, PmsProject _proj)
        {
            List <DateTime> lHoliday = CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = _proj.OID, IsHoliday = 1
            }).Select(val => DateTime.Parse(val.Year + "-" + val.Month + "-" + val.Day)).ToList();
            string strHoliday = string.Join(",", CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = _proj.OID, IsHoliday = 1
            }).Select(value => value.FullDate.ToString().ToArray()));

            PmsRelationship getStructure = new PmsRelationship();

            getStructure.Level       = _level;
            getStructure.ToOID       = _fromOID;
            getStructure.ToData      = _proj;
            getStructure.ObjName     = _proj.Name;
            getStructure.Description = _proj.Description;
            getStructure.ObjType     = _proj.Type;
            getStructure.EstDuration = _proj.EstDuration;
            getStructure.EstStartDt  = _proj.EstStartDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.EstStartDt)) : _proj.EstStartDt;

            getStructure.EstEndDt = _proj.EstEndDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.EstEndDt)) : _proj.EstEndDt;

            getStructure.ActDuration = _proj.ActDuration;
            getStructure.ActStartDt  = _proj.ActStartDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.ActStartDt)) : _proj.ActStartDt;

            getStructure.ActEndDt = _proj.ActEndDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.ActEndDt)) : _proj.ActEndDt;

            getStructure.ObjSt      = _proj.BPolicyOID;
            getStructure.ObjStNm    = _proj.BPolicy.StatusNm;
            getStructure.Complete   = _proj.Complete;
            getStructure.WorkingDay = _proj.WorkingDay;
            getStructure.Id         = null;
            getStructure.Dependency = null;
            if (_proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PREPARE || _proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PAUSED)
            {
                getStructure.diseditable = PmsConstant.DISEDITABLE;
            }
            else
            {
                getStructure.diseditable = PmsConstant.FLOWEDITABLE;
                if (_proj.ActEndDt != null)
                {
                    getStructure.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(_proj.EstEndDt), Convert.ToDateTime(_proj.ActEndDt), Convert.ToInt32(_proj.WorkingDay), lHoliday);
                }
                else
                {
                    getStructure.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(_proj.EstEndDt), DateTime.Now, Convert.ToInt32(_proj.WorkingDay), lHoliday);
                }
            }
            GetWbsStructure(getStructure, _fromOID, Convert.ToInt32(_proj.WorkingDay), strHoliday, _proj, lHoliday);
            return(getStructure);
        }
コード例 #2
0
        public static List <Dictionary <string, object> > GetLDGanttWbs(string OID)
        {
            int        Level = 0;
            PmsProject proj  = PmsProjectRepository.SelPmsObject(new PmsProject {
                OID = Convert.ToInt32(OID)
            });
            List <DateTime> lHoliday = CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = proj.CalendarOID, IsHoliday = 1
            }).Select(val => DateTime.Parse(val.Year + "-" + val.Month + "-" + val.Day)).ToList();
            List <Dictionary <string, object> > ldPmsWbs = new List <Dictionary <string, object> >();

            Dictionary <string, object> dProj = new Dictionary <string, object>();

            dProj.Add("oid", proj.OID);
            dProj.Add("id", 0);
            dProj.Add("name", proj.Name);
            dProj.Add("progress", 0);
            dProj.Add("progressByWorklog", false);
            dProj.Add("relevance", 0);
            dProj.Add("type", "");
            dProj.Add("typeId", "");
            dProj.Add("description", proj.Description);
            dProj.Add("code", Level);
            dProj.Add("level", Level);
            if (proj.BPolicy.Name != PmsConstant.POLICY_PROJECT_PREPARE)
            {
                if (proj.ActEndDt != null)
                {
                    dProj.Add("status", "STATUS_DONE");
                }
                else
                {
                    int delay = PmsUtils.CalculateDelay(Convert.ToDateTime(proj.EstEndDt), DateTime.Now, Convert.ToInt32(proj.WorkingDay), lHoliday);
                    if (delay > 1 && delay <= PmsConstant.DELAY)
                    {
                        dProj.Add("status", "STATUS_WAITING");
                    }
                    else if (delay > PmsConstant.DELAY)
                    {
                        dProj.Add("status", "STATUS_FAILED");
                    }
                    else
                    {
                        dProj.Add("status", "STATUS_ACTIVE");
                    }
                }
            }
            else
            {
                dProj.Add("status", "STATUS_SUSPENDED");
            }
            dProj.Add("depends", "");
            dProj.Add("canWrite", true);
            dProj.Add("start", proj.EstStartDt);
            dProj.Add("duration", proj.EstDuration);
            dProj.Add("end", proj.EstEndDt);
            dProj.Add("ActStart", proj.ActStartDt != null ? string.Format("{0:yyyy-MM-dd}", proj.ActStartDt) : "");
            dProj.Add("ActDuration", proj.ActDuration);
            dProj.Add("ActEnd", proj.ActEndDt != null ? string.Format("{0:yyyy-MM-dd}", proj.ActEndDt) : "");
            dProj.Add("startIsMilestone", false);
            dProj.Add("endIsMilestone", false);
            dProj.Add("collapsed", false);
            dProj.Add("assigs", new List <object>());
            ldPmsWbs.Add(dProj);
            GetGanttSturcture(dProj, ldPmsWbs, Convert.ToInt32(proj.WorkingDay), lHoliday);
            return(ldPmsWbs);
        }