示例#1
0
        private bool SaveXml(string xmlFileName)
        {
            XmlDocument xDoc = new XmlDocument();

            xDoc.Load(xmlFileName);
            Types = GetTypeTable(xDoc);
            //Check 是否使用模板
            if (!CheckUseTemplate(Types))
            {
                return(false);
            }
            Resources   = GetResourceTable(xDoc);
            Assignments = GetAssignmentTable(xDoc);

            XmlNodeList tasks = xDoc.GetElementsByTagName("Task");

            foreach (XmlNode node in tasks)
            {
                TmpSdpImportdetail tmpSdpDetail = new TmpSdpImportdetail();
                bool          pass = false;
                List <string> list = Template;

                if (!GetTmpSdpDetail(node, ref tmpSdpDetail, ref pass, ref list))
                {
                    return(false);
                }

                //没跳过并且没有选择全部新增栏位
                if (!pass && list.Count > 0)
                {
                    string columns = "";
                    foreach (string column in list)
                    {
                        if (columns != "")
                        {
                            columns += ",";
                        }
                        columns += column;
                    }
                    if (columns.Contains("TaskType1"))
                    {
                        columns = columns.Replace("TaskType1", "TaskType");
                    }
                    Msgbox("请完整填写列:" + columns);
                    return(false);
                }
                if (!pass)
                {
                    tmpSdpDetail.Vid   = "PM";
                    tmpSdpDetail.Pmsid = pmsid;
                    tmpSdpDetail.Flag  = "N";
                    new TmpSdpImportdetailBiz().InsertTmpSdpDetail(tmpSdpDetail);
                }
            }
            return(true);
        }
示例#2
0
 public IList <TmpSdpImportdetail> GetTmpSdpDetail(TmpSdpImportdetail tmpSdpImportdetail)
 {
     try
     {
         return(m_PMSSqlConnection.QueryForList <TmpSdpImportdetail>("SelectTmpSdpDetail", tmpSdpImportdetail));
     }
     catch (Exception ex)
     {
         m_Logger.Error("TmpSdpImportdetailBiz/InsertTmpSdpDetail" + ex.Message.ToString());
         return(null);
     }
 }
示例#3
0
        public bool UpdateParentFlag(string serial)
        {
            TmpSdpImportdetail tmpSdpImportdetailForUpdate = new TmpSdpImportdetail();

            tmpSdpImportdetailForUpdate.Serial = int.Parse(serial.Trim());
            TmpSdpImportdetailBiz tmpSdpImportdetailBiz = new TmpSdpImportdetailBiz();

            if (!tmpSdpImportdetailBiz.UpdateTmpSdpDetailFlag(tmpSdpImportdetailForUpdate))
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        public bool UpdateTmpSdpDetailFlag(TmpSdpImportdetail tmpSdpImportdetail)
        {
            bool updateResult = false;

            try
            {
                m_PMSSqlConnection.Update("UpdateTmpSdpDetailFlag", tmpSdpImportdetail);
                updateResult = true;
            }
            catch (Exception ex)
            {
                m_Logger.Error("TmpSdpImportdetailBiz/UpdateTmpSdpDetailFlag:" + ex.ToString());
            }
            return(updateResult);
        }
示例#5
0
        public int InsertTmpSdpDetail(TmpSdpImportdetail tmpSdpImportdetail)
        {
            int returnSerial = 0;

            try
            {
                object objResult = m_PMSSqlConnection.Insert("InsertTmpSdpDetail", tmpSdpImportdetail);

                if (objResult != null)
                {
                    returnSerial = (int)objResult;
                }
            }
            catch (Exception ex)
            {
                m_Logger.Error("TmpSdpImportdetailBiz/InsertTmpSdpDetail" + ex.Message.ToString());
            }

            return(returnSerial);
        }
        public void ProcessRequest(HttpContext context)
        {
            PageParameterManager pageParameterManager = new PageParameterManager(context);

            var tmpSdpImportdetail = new TmpSdpImportdetail
            {
                Pmsid = pageParameterManager.GetString("Pmsid"),

                //tmpSdpImportdetail.Pmsid = pageParameterManager.GetRequiredGuid("Pmsid").ToString(),
                //Subject_Category = pageParameterManager.GetRequiredString("subjectCategory"),
                //Subject_Id = pageParameterManager.GetRequiredGuid("subjectId"),
                //Resource_Org_Id = pageParameterManager.GetRequiredGuid("resourceOrgId"),
            };

            TmpSdpImportdetailBiz tmpSdpImportdetailBiz = new TmpSdpImportdetailBiz();
            var listTmpSdpImportdetail = tmpSdpImportdetailBiz.GetTmpSdpDetail(tmpSdpImportdetail);
            var serializer             = EasyuiTreegridHelp.Serializer <TmpSdpImportdetail>(listTmpSdpImportdetail, null, "Parentno", string.Empty);


            context.Response.ContentType = "text/plain";
            context.Response.Write(serializer);
        }
示例#7
0
        private bool GetTmpSdpDetail(XmlNode node, ref TmpSdpImportdetail tmpSdpDetail, ref bool pass, ref List <string> list)
        {
            foreach (XmlNode subNode in node.ChildNodes)
            {
                if (subNode.Name == "UID")
                {
                    string taskId = subNode.InnerText;
                    if (taskId == "0")
                    {
                        pass = true;
                        break;
                    }
                    if (Assignments[taskId] != null)
                    {
                        string resourceId = Assignments[taskId].ToString();
                        if (resourceId.Contains(","))
                        {
                            string[] resourceIds = resourceId.Split(',');
                            string   resource    = "";
                            foreach (string id in resourceIds)
                            {
                                if (resource != "")
                                {
                                    resource += ",";
                                }
                                resource += Resources[id].ToString();
                            }
                            tmpSdpDetail.Resource = resource;
                        }
                        else
                        {
                            tmpSdpDetail.Resource = Resources[Assignments[taskId]].ToString();
                        }
                    }
                    else
                    {
                        Msgbox("Resource names of all task can not be empty!");
                        return(false);
                    }
                }
                if (subNode.Name == "ID")
                {
                    //如果没有任务名称跳过不保存
                    if (subNode.NextSibling.Name != "Name")
                    {
                        pass = true;
                        break;
                    }
                }
                if (subNode.Name == "WBS")
                {
                    string wbs = subNode.InnerText;
                    tmpSdpDetail.Wbs = wbs;
                    if (wbs == "0")
                    {
                        pass = true;
                        break;
                    }
                    if (wbs.Contains('.'))
                    {
                        tmpSdpDetail.Parentno = wbs.Remove(wbs.LastIndexOf("."));
                    }
                    else
                    {
                        tmpSdpDetail.Parentno = "";
                    }
                }
                if (subNode.Name == "Name")
                {
                    tmpSdpDetail.TaskName = subNode.InnerText;
                }
                if (subNode.Name == "Start")
                {
                    tmpSdpDetail.Planstartday = DateTime.Parse(subNode.InnerText);
                }
                if (subNode.Name == "Finish")
                {
                    tmpSdpDetail.Planendday = DateTime.Parse(subNode.InnerText);
                }
                if (subNode.Name == "Duration")
                {
                    string planCost = subNode.InnerText;
                    planCost = planCost.Replace("PT", "").Trim();
                    planCost = planCost.Replace("H0M0S", "").Trim();
                    tmpSdpDetail.Plancost = float.Parse(planCost);
                }
                if (subNode.Name == "ExtendedAttribute")
                {
                    List <string> typeInfo = GetTaskTypeTable(subNode);
                    string        type     = Types[typeInfo[0]].ToString();
                    list.Remove(type);
                    switch (type)
                    {
                    case "Role":
                        tmpSdpDetail.Role = typeInfo[1].ToString();
                        break;

                    case "TaskComplexity":
                        tmpSdpDetail.TaskComplexity = (int)Enum.Parse(typeof(PmsCommonEnum.TaskComplexity), typeInfo[1]);
                        break;

                    case "Phase":
                        Dictionary <string, string> phases = new PmsCommonEnum().GetEnumValueAndDesc(typeof(PmsCommonEnum.PlanPhase));
                        tmpSdpDetail.Phase = int.Parse(phases[typeInfo[1]]).ToString();
                        break;

                    case "TaskType1":

                        int taskTypeValue = -1;
                        if (!CheckTaskType(tmpSdpDetail.Phase, typeInfo[1], ref taskTypeValue))
                        {
                            Msgbox("TaskName-(" + tmpSdpDetail.TaskName + "):Pahse 与 TaskType 不匹配!");
                            return(false);
                        }
                        else
                        {
                            tmpSdpDetail.TaskType = taskTypeValue;
                        }
                        break;

                    case "OperationType":
                        Dictionary <string, string> OperationTypes = new PmsCommonEnum().GetEnumValueAndDesc(typeof(PmsCommonEnum.OperationType));
                        tmpSdpDetail.OperationType = int.Parse(OperationTypes[typeInfo[1]]);
                        break;

                    case "ProgramLanguage":
                        Dictionary <string, string> ProgramLanguages = new PmsCommonEnum().GetEnumValueAndDesc(typeof(PmsCommonEnum.ProgramLanguage));
                        tmpSdpDetail.ProgramLanguage = int.Parse(ProgramLanguages[typeInfo[1]]);
                        break;

                    case "FunctionType":
                        tmpSdpDetail.FunctionType = (int)Enum.Parse(typeof(PmsCommonEnum.FunctionType), typeInfo[1]);
                        break;
                    }
                }
            }
            return(true);
        }
示例#8
0
        public bool UpdateSdpDetailBySerial(string serials, string sdpDetailSerials)
        {
            string[] serialArray          = serials.Split(';');
            string[] sdpDetailSerialArray = sdpDetailSerials.Split(';');

            for (int i = 0; i < serialArray.Length; i++)
            //foreach (string serial in serialArray)
            {
                TmpSdpImportdetail tmpSdpImportdetail = new TmpSdpImportdetail();
                tmpSdpImportdetail.Serial = int.Parse(serialArray[i].Trim());
                TmpSdpImportdetailBiz tmpSdpImportdetailBiz = new TmpSdpImportdetailBiz();
                var listTmpSdpImportdetail = tmpSdpImportdetailBiz.GetTmpSdpDetail(tmpSdpImportdetail);
                if (listTmpSdpImportdetail == null || listTmpSdpImportdetail.Count == 0)
                {
                    return(false);
                }
                else
                {
                    tmpSdpImportdetail = listTmpSdpImportdetail[0];
                }


                //更新sdpDetail表
                SdpDetailBiz sdpDetailBiz = new SdpDetailBiz();
                SdpDetail    sdpDetail    = new SdpDetail();
                DateTime     dateTime     = PmsSysBiz.GetDBDateTime();


                //根据pmsid和serial 定位要跟新的任务
                sdpDetail.Pmsid  = tmpSdpImportdetail.Pmsid;
                sdpDetail.Serial = int.Parse(sdpDetailSerialArray[i]);

                //获取已存在任务在 tmp_sdp_importdetail表中不存在的栏位
                SdpDetail SdpDetailResult = new SdpDetailBiz().SelectSdpDetail(sdpDetail)[0];
                sdpDetail = SdpDetailResult;

                sdpDetail.TaskName        = tmpSdpImportdetail.TaskName;
                sdpDetail.OperationType   = tmpSdpImportdetail.OperationType;
                sdpDetail.TaskType        = tmpSdpImportdetail.TaskType;
                sdpDetail.FunctionType    = tmpSdpImportdetail.FunctionType;
                sdpDetail.ProgramLanguage = tmpSdpImportdetail.ProgramLanguage;
                sdpDetail.TaskComplexity  = tmpSdpImportdetail.TaskComplexity;

                //根据条件取,取值为空->refCost=planCost
                PmsSdpRefcost sdpRefcost = new PmsSdpRefcost();
                sdpRefcost.OperationType   = sdpDetail.OperationType;
                sdpRefcost.TaskComplexity  = sdpDetail.TaskComplexity;
                sdpRefcost.Tasktype        = sdpDetail.TaskType;
                sdpRefcost.Functiontype    = sdpDetail.FunctionType;
                sdpRefcost.Programlanguage = sdpDetail.ProgramLanguage;
                IList <PmsSdpRefcost> sdpRefcostlList = new PmsSdpRefcostBiz().SelectPmsSdpRefcost(sdpRefcost);
                if (sdpRefcostlList == null || sdpRefcostlList.Count == 0)
                {
                    sdpDetail.Refcost = tmpSdpImportdetail.Plancost;
                }
                else
                {
                    sdpDetail.Refcost = sdpRefcostlList[0].Refcost;
                }
                sdpDetail.Plancost     = tmpSdpImportdetail.Plancost;
                sdpDetail.Auditor      = new BaseDataUserBiz().SelectLeaderByLoginName(LoginName);
                sdpDetail.Planstartday = tmpSdpImportdetail.Planstartday;
                sdpDetail.Planendday   = tmpSdpImportdetail.Planendday;
                sdpDetail.Resource     = tmpSdpImportdetail.Resource;
                sdpDetail.Role         = tmpSdpImportdetail.Role;
                sdpDetail.Maintaindate = dateTime;
                sdpDetail.Maintainuser = LoginName;

                if (!sdpDetailBiz.UpdateSdpDetail(sdpDetail))
                {
                    return(false);
                }
                //更新临时表Falg栏位为“Y”
                TmpSdpImportdetail tmpSdpImportdetailForUpdate = new TmpSdpImportdetail();
                tmpSdpImportdetailForUpdate.Serial = int.Parse(serialArray[i].Trim());
                if (!tmpSdpImportdetailBiz.UpdateTmpSdpDetailFlag(tmpSdpImportdetailForUpdate))
                {
                    return(false);
                }
            }
            return(true);
        }
示例#9
0
        public bool ImportSdpDetailBySerial(string serials)
        {
            string[] serialArray = serials.Split(';');
            foreach (string serial in serialArray)
            {
                TmpSdpImportdetail tmpSdpImportdetail = new TmpSdpImportdetail();
                tmpSdpImportdetail.Serial = int.Parse(serial.Trim());
                TmpSdpImportdetailBiz tmpSdpImportdetailBiz = new TmpSdpImportdetailBiz();
                var listTmpSdpImportdetail = tmpSdpImportdetailBiz.GetTmpSdpDetail(tmpSdpImportdetail);
                if (listTmpSdpImportdetail == null || listTmpSdpImportdetail.Count == 0)
                {
                    return(false);
                }
                else
                {
                    tmpSdpImportdetail = listTmpSdpImportdetail[0];
                }


                //插入sdpDetail表
                SdpDetailBiz sdpDetailBiz = new SdpDetailBiz();
                SdpDetail    sdpDetail    = new SdpDetail();
                DateTime     dateTime     = PmsSysBiz.GetDBDateTime();

                sdpDetail.Pmsid = tmpSdpImportdetail.Pmsid;
                sdpDetail.Phase = tmpSdpImportdetail.Phase;

                sdpDetail.TaskName        = tmpSdpImportdetail.TaskName;
                sdpDetail.OperationType   = tmpSdpImportdetail.OperationType;
                sdpDetail.TaskType        = tmpSdpImportdetail.TaskType;
                sdpDetail.FunctionType    = tmpSdpImportdetail.FunctionType;
                sdpDetail.ProgramLanguage = tmpSdpImportdetail.ProgramLanguage;
                sdpDetail.TaskComplexity  = tmpSdpImportdetail.TaskComplexity;

                //根据条件取,为空就为planCost
                PmsSdpRefcost sdpRefcost = new PmsSdpRefcost();
                sdpRefcost.OperationType   = sdpDetail.OperationType;
                sdpRefcost.TaskComplexity  = sdpDetail.TaskComplexity;
                sdpRefcost.Tasktype        = sdpDetail.TaskType;
                sdpRefcost.Functiontype    = sdpDetail.FunctionType;
                sdpRefcost.Programlanguage = sdpDetail.ProgramLanguage;
                IList <PmsSdpRefcost> sdpRefcostlList = new PmsSdpRefcostBiz().SelectPmsSdpRefcost(sdpRefcost);
                if (sdpRefcostlList == null || sdpRefcostlList.Count == 0)
                {
                    sdpDetail.Refcost = tmpSdpImportdetail.Plancost;
                }
                else
                {
                    sdpDetail.Refcost = sdpRefcostlList[0].Refcost;
                }


                sdpDetail.Plancost     = tmpSdpImportdetail.Plancost;
                sdpDetail.Auditor      = new BaseDataUserBiz().SelectLeaderByLoginName(LoginName);
                sdpDetail.Planstartday = tmpSdpImportdetail.Planstartday;
                sdpDetail.Planendday   = tmpSdpImportdetail.Planendday;
                sdpDetail.Resource     = tmpSdpImportdetail.Resource;
                sdpDetail.Role         = tmpSdpImportdetail.Role;
                sdpDetail.AuditStatus  = 1;
                sdpDetail.TaskStatus   = 1;
                sdpDetail.Taskno       = 1;
                sdpDetail.Iseditable   = "Y";
                sdpDetail.Deleteflag   = "N";
                sdpDetail.Createdate   = dateTime;
                sdpDetail.Createuser   = LoginName;
                sdpDetail.Maintaindate = dateTime;
                sdpDetail.Maintainuser = LoginName;

                if (new SdpDetailBiz().InsertSdpDetail(sdpDetail) < 0)
                {
                    return(false);
                }
                //更新临时表Falg栏位为“Y”
                TmpSdpImportdetail tmpSdpImportdetailForUpdate = new TmpSdpImportdetail();
                tmpSdpImportdetailForUpdate.Serial = int.Parse(serial.Trim());
                if (!tmpSdpImportdetailBiz.UpdateTmpSdpDetailFlag(tmpSdpImportdetailForUpdate))
                {
                    return(false);
                }
            }
            return(true);
        }