Esempio n. 1
0
        public IHttpActionResult SyncProject(int projectId, int spaceId)
        {
            DelegateHandler delegateHandler = new DelegateHandler();
            ProjectBinder   projectBinder   = new ProjectBinder()
            {
                ProjectID = projectId,
                SpaceID   = spaceId
            };

            return(Ok <List <ReturnMessage> >(SyncProject2SAP(projectBinder, delegateHandler.SyncProjectInfo)));
        }
Esempio n. 2
0
 static List <ReturnMessage> SyncProject2SAP(ProjectBinder projectBinder, DelegateSyncSAP delegateSyncSAP)
 {
     return(delegateSyncSAP(projectBinder));
 }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args">参数数组,接收ProjectID,SpaceID</param>
        static void Main(string[] args)
        {
            DelegateHandler delegateHandler = new DelegateHandler();

            try
            {
                //接收参数,封装成实体类
                ProjectBinder projectBinder = new ProjectBinder()
                {
                    ProjectID        = Convert.ToInt32(args[0]),
                    SpaceID          = Convert.ToInt32(args[1]),
                    MyFlag           = (Flag)Convert.ToInt32(args[2]),
                    ProjectRequestID = Convert.ToInt32(args[3])
                };

                LogHelper.WriteLog("当前接收到的的ProjectID:" + projectBinder.ProjectID);
                LogHelper.WriteLog("当前接收到的的SpaceID:" + projectBinder.SpaceID);
                LogHelper.WriteLog("当前接收到的的更新标志是:" + projectBinder.MyFlag.ToString());
                LogHelper.WriteLog("当前接收到的的立项任务是:" + projectBinder.ProjectRequestID.ToString());

                if ((int)projectBinder.MyFlag == 0)//新建项目
                {
                    SyncProject2SAP(projectBinder, delegateHandler.SyncProjectInfo);
                }
                else if ((int)projectBinder.MyFlag == 1)//项目状态流转 技术性延迟
                {
                    SyncProject2SAP(projectBinder, delegateHandler.SyncProjectInfo);
                }
                else if ((int)projectBinder.MyFlag == 2)//项目状态流转时 关闭
                {
                    SyncProject2SAP(projectBinder, delegateHandler.SyncProjectInfo);
                }
                else if ((int)projectBinder.MyFlag == 4)//工时
                {
                    //3.委托绑定
                    SyncProject2SAP(projectBinder, delegateHandler.SyncProjectEstimate);
                }



                ////1. 获取立项生成项目后触发的ProjectID 和 SubProjectID
                //ProjectHelper projectHelper = new ProjectHelper();

                ////2. 根据生成的项目,获取项目的信息,封装到项目信息实体类中
                //Project project = projectHelper.GetProjectInfo(projectBinder);//项目信息
                //WBSInfo wbs = projectHelper.GetWBS(projectBinder);//wbs结构
                //                                                  //ProjectBudget projectBudget = projectHelper.GetProjectBudget(projectBinder);//项目预算
                //                                                  //2.1 根据。。名称获取。。编号

                //try
                //{
                //    LogHelper.WriteLog($"当前项目基础信息为以下:--------------------");
                //    LogHelper.WriteLog($"项目名称:{ project.ProjectName}");
                //    LogHelper.WriteLog($"项目编码:{ project.ProjectUniqueID}");
                //    LogHelper.WriteLog($"项目类型:{ project.ProjectType}");
                //    LogHelper.WriteLog($"项目类型对应的编码:{ project.ProjectTypeID}");
                //    LogHelper.WriteLog($"项目经理:{ project.ProjectManager}");
                //    LogHelper.WriteLog($"项目代号:{ project.ProjectCodeName}");
                //    LogHelper.WriteLog($"委托部门:{ project.DelegateDepartment}");
                //    LogHelper.WriteLog($"承担部门:{ project.UnderTaskDepartment}");
                //    LogHelper.WriteLog($"项目复杂度等级:{ project.ProjectComplexLevel}");
                //    LogHelper.WriteLog($"项目优先级:{ project.ProjectPriority}");
                //    LogHelper.WriteLog($"项目状态:{ project.ProjectStatus}");
                //    LogHelper.WriteLog($"当前项目基础信息截止:--------------------");
                //    LogHelper.WriteLog("                        ");
                //    LogHelper.WriteLog($"当前项目wbs信息为以下:--------------------");
                //    LogHelper.WriteLog($"项目编码:{ wbs.ProjectUniqueID}");
                //    foreach (var item in wbs.WbsFolders)
                //    {
                //        LogHelper.WriteLog($"WBS元素名称:{ item.WBSName}");
                //        LogHelper.WriteLog($"WBS元素编码:{ item.WBSUniqueNo}");
                //    }

                //    LogHelper.WriteLog($"当前项目wbs信息截止:--------------------");
                //    LogHelper.WriteLog("                        ");



                //    LogHelper.WriteLog($"当前里程碑的子目录信息为以下:--------------------");
                //    //调用工时帮助类实现返回带有工时信息的wbs元素信息
                //    TimeHelper timeHelper = new TimeHelper(wbs);

                //    //调用获取子目录方法,返回每个wbs元素对应下的所有子目录
                //    Dictionary<string, List<int>> subFolders = timeHelper.GetAllChildFolderIds(wbs);

                //    //输出每个wbs元素信息,以及对应的子目录节点id,以及工时统计,按人员分组
                //    foreach (var item in wbs.WbsFolders)
                //    {
                //        LogHelper.WriteLog($"当前wbs元素编码的信息为:--------------------");
                //        LogHelper.WriteLog($"WBS元素编码:{ item.WBSUniqueNo}");
                //        LogHelper.WriteLog($"WBS所有子目录为:");
                //        foreach (var item4 in subFolders[item.WBSUniqueNo])
                //        {
                //            LogHelper.WriteLog($"当前WBS元素的子目录为:{item4.ToString()}");
                //        }
                //        LogHelper.WriteLog($"-------------当前wbs元素工时信息为:--------------------");
                //        foreach (var item2 in item.TimeCosts)
                //        {
                //            LogHelper.WriteLog($"-----------------当前人员编号为:{item2.PersonID}");
                //            LogHelper.WriteLog($"-----------------当前人员登录名为:{item2.LoginName}");
                //            LogHelper.WriteLog($"-----------------统计的月份为:{item2.Month}");
                //            LogHelper.WriteLog($"-----------------总计工时为:{item2.TotalTime}");
                //        }
                //    }
                //    LogHelper.WriteLog($"当前里程碑的子目录信息截止:--------------------");

                //    //调用SAP RFC函数执行。。。
                //    SAPSync sapSync = new SAPSync();
                //    sapSync.RegisterDestination();
                //    sapSync.InvokeRFCFunctionZPSRFC03(project,wbs);

                //}
                //catch (Exception ex)
                //{

                //    LogHelper.WriteLog("同步出现异常:" + ex.Message);
                //}
            }
            catch (Exception ex)
            {
                // LogHelper.WriteLog("参数出错,执行报错:" + ex.Message);
                LogHelper.Error("参数出错,执行报错:" + ex.Message, ex);
            }
        }
Esempio n. 4
0
 //2. 委托变量
 static void SyncProject2SAP(ProjectBinder projectBinder, DelegateSyncSAP delegateSyncSAP)
 {
     delegateSyncSAP(projectBinder);//4. 委托调用
 }
Esempio n. 5
0
        //同步工时
        public void SyncProjectEstimate(ProjectBinder projectBinder)
        {
            WBSInfo wbs = null;

            try
            {
                //1. 获取立项生成项目后触发的ProjectID 和 SubProjectID
                ProjectHelper projectHelper = new ProjectHelper();

                //2. 获取wbs信息

                wbs = projectHelper.GetWBS(projectBinder); //wbs结构
                                                           //ProjectBudget projectBudget = projectHelper.GetProjectBudget(projectBinder);//项目预算
                                                           //2.1 根据。。名称获取。。编号



                TimeHelper timeHelper = new TimeHelper(wbs);

                LogHelper.WriteLog($"当前项目wbs信息为以下:--------------------");
                LogHelper.WriteLog($"项目编码:{ wbs.ProjectUniqueID}");
                foreach (var item in wbs.WbsFolders)
                {
                    LogHelper.WriteLog($"WBS元素名称:{ item.WBSName}");
                    LogHelper.WriteLog($"WBS元素编码:{ item.WBSUniqueNo}");
                }

                LogHelper.WriteLog($"当前项目wbs信息截止:--------------------");
                LogHelper.WriteLog("                        ");

                //调用获取子目录方法,返回每个wbs元素对应下的所有子目录
                Dictionary <string, List <int> > subFolders = timeHelper.GetAllChildFolderIds(wbs);

                //输出每个wbs元素信息,以及对应的子目录节点id,以及工时统计,按人员分组
                foreach (var item in wbs.WbsFolders)
                {
                    LogHelper.WriteLog($"当前wbs元素编码的信息为:--------------------");
                    LogHelper.WriteLog($"WBS元素编码:{ item.WBSUniqueNo}");
                    //LogHelper.WriteLog($"WBS所有子目录为:");
                    //foreach (var item4 in subFolders[item.WBSUniqueNo])
                    //{
                    //    LogHelper.WriteLog($"当前WBS元素的子目录为:{item4.ToString()}");
                    //}
                    LogHelper.WriteLog($"-------------当前wbs元素工时信息为:--------------------");
                    foreach (var item2 in item.TimeCosts)
                    {
                        LogHelper.WriteLog($"-----------------当前人员编号为:{item2.PersonID}");
                        LogHelper.WriteLog($"-----------------当前人员登录名为:{item2.LoginName}");
                        LogHelper.WriteLog($"-----------------统计的月份为:{item2.Month}");
                        LogHelper.WriteLog($"-----------------统计的年为:{item2.Yeart}");
                        LogHelper.WriteLog($"-----------------统计的月为:{item2.Montht}");
                        LogHelper.WriteLog($"-----------------总计工时为:{item2.TotalTime}");
                    }
                }
            }
            catch (Exception ex)
            {
                // LogHelper.WriteLog("获取wbs信息出错:" + ex.Message);
                LogHelper.Error("获取wbs信息出错:" + ex.Message, ex);
            }

            //调用SAP RFC函数执行。。。
            SAPSync sapSync = new SAPSync();

            sapSync.RegisterDestination();
            sapSync.InvokeRFCFunctionZPSRFC04(wbs);
        }
Esempio n. 6
0
 //同步状态
 public void SyncProjectStatus(ProjectBinder projectBinder)
 {
 }
Esempio n. 7
0
        //新建项目
        public void SyncProjectInfo(ProjectBinder projectBinder)
        {
            Project project = null;
            WBSInfo wbs     = null;

            try
            {
                //1. 获取立项生成项目后触发的ProjectID 和 SubProjectID
                ProjectHelper projectHelper = new ProjectHelper();

                //2. 根据生成的项目,获取项目的信息,封装到项目信息实体类中
                project = projectHelper.GetProjectInfo(projectBinder);//项目信息
                if (project == null)
                {
                    //  LogHelper.WriteLog("Init Project error, please check it");
                    LogHelper.Error("项目信息初始化异常", new Exception("获取项目的基础信息出错"));
                    return;
                }
                wbs = projectHelper.GetWBS(projectBinder); //wbs结构
                //ProjectBudget projectBudget = projectHelper.GetProjectBudget(projectBinder);//项目预算
                //2.1 根据。。名称获取。。编号

                LogHelper.WriteLog($"当前项目基础信息为以下:--------------------");
                LogHelper.WriteLog($"项目名称:{ project.ProjectName}");
                LogHelper.WriteLog($"项目编码:{ project.ProjectUniqueID}");
                LogHelper.WriteLog($"项目类型:{ project.ProjectType}");
                LogHelper.WriteLog($"项目类型对应的编码:{ project.ProjectTypeID}");
                LogHelper.WriteLog($"项目经理:{ project.ProjectManager}");
                LogHelper.WriteLog($"项目代号:{ project.ProjectCodeName}");
                LogHelper.WriteLog($"委托部门:{ project.DelegateDepartment}");
                LogHelper.WriteLog($"承担部门:{ project.UnderTaskDepartment}");
                LogHelper.WriteLog($"项目复杂度等级:{ project.ProjectComplexLevel}");
                LogHelper.WriteLog($"项目优先级:{ project.ProjectPriority}");
                LogHelper.WriteLog($"项目状态:{ project.ProjectStatus}");
                LogHelper.WriteLog($"当前项目基础信息截止:--------------------");
                LogHelper.WriteLog("                        ");
                LogHelper.WriteLog($"当前项目wbs信息为以下:--------------------");
                LogHelper.WriteLog($"项目编码:{ wbs.ProjectUniqueID}");
                foreach (var item in wbs.WbsFolders)
                {
                    LogHelper.WriteLog($"WBS元素名称:{ item.WBSName}");
                    LogHelper.WriteLog($"WBS元素编码:{ item.WBSUniqueNo}");
                }

                LogHelper.WriteLog($"当前项目wbs信息截止:--------------------");
                LogHelper.WriteLog("                        ");



                LogHelper.WriteLog($"当前里程碑的子目录信息为以下:--------------------");
            }
            catch (Exception ex)
            {
                //LogHelper.WriteLog("获取项目信息和wbs信息出错:"+ex.Message); ;
                LogHelper.Error("获取项目信息和wbs信息出错:" + ex.Message, ex);;
            }

            //调用SAP RFC函数执行。。。
            SAPSync sapSync = new SAPSync();

            sapSync.RegisterDestination();
            sapSync.InvokeRFCFunctionZPSRFC03(project, wbs);
        }