Exemplo n.º 1
0
        private void DoImpUser()
        {
            string FileName = RequestData.Get("FileId") + "";
            string SurveyId = RequestData.Get("SurveyId") + "";
            string Sign     = RequestData.Get("Sign") + "";     //区分导入对象 Surveyed Reader

            FileName = MapPath("../Document/") + FileName;
            DataTable dt = ImpUser(FileName);

            if (Sign.Contains("Reader"))
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    SurveyCanReaderUsr Usr = new SurveyCanReaderUsr();
                    Usr.SurveyId = SurveyId;
                    Usr.WorkNo   = dt.Rows[i]["工号"].ToString();
                    Usr.UserName = dt.Rows[i]["姓名"].ToString();
                    Usr.DeptName = GetOrgs(dt.Rows[i]["工号"].ToString());
                    try
                    {
                        var User = SysUser.FindFirstByProperties(SysUser.Prop_WorkNo, dt.Rows[i]["工号"].ToString(), SysUser.Prop_Status, 1);
                        Usr.UserId = User.UserID;
                    }
                    catch { }


                    Usr.CreateWay = "0";   //表示导入
                    Usr.DoCreate();
                }
                DataHelper.ExecSql("Delete from FL_Culture..SurveyCanReaderUsr where UserId='' or WorkNo='' ");
            }
            else if (Sign.Contains("Surveyed"))
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    SurveyFinallyUsr Usr = new SurveyFinallyUsr();
                    Usr.SurveyId = SurveyId;
                    Usr.WorkNo   = dt.Rows[i]["工号"].ToString();
                    Usr.UserName = dt.Rows[i]["姓名"].ToString();
                    Usr.DeptName = GetOrgs(dt.Rows[i]["工号"].ToString());

                    try
                    {
                        //这里还需处理 工号错误
                        var User = SysUser.FindFirstByProperties(SysUser.Prop_WorkNo, dt.Rows[i]["工号"].ToString(), SysUser.Prop_Status, 1);
                        Usr.UserId = User.UserID;
                    }
                    catch { }

                    Usr.CreateWay = "0";     //表示导入
                    Usr.DoCreate();
                }
                DataHelper.ExecSql("Delete from FL_Culture..SurveyFinallyUsr where UserId='' or WorkNo=''  ");
            }

            this.PageState.Add("State", "1");
        }
Exemplo n.º 2
0
        private void DoBatchDelete()
        {
            IList <object> idList = RequestData.GetList <object>("IdList");

            if (idList != null && idList.Count > 0)
            {
                SurveyFinallyUsr.DoBatchDelete(idList.ToArray());
            }
        }
        private void DoBatchDelete()
        {
            IList <object> idList = RequestData.GetList <object>("IdList");

            if (idList != null && idList.Count > 0)
            {
                // SurveyQuestion.DoBatchDelete(idList.ToArray());
                for (var v = 0; v < idList.Count; v++)
                {
                    // 人员 问卷
                    QuestionItem[]       Qent = QuestionItem.FindAllByProperties(QuestionItem.Prop_SurveyId, idList[v].ToString());
                    QuestionAnswerItem[] Aent = QuestionAnswerItem.FindAllByProperties(QuestionAnswerItem.Prop_SurveyId, idList[v].ToString());

                    SurveyFinallyUsr[]   FuEnt = SurveyFinallyUsr.FindAllByProperties(SurveyFinallyUsr.Prop_SurveyId, idList[v].ToString());
                    SurveyCanReaderUsr[] Ruent = SurveyCanReaderUsr.FindAllByProperties(SurveyCanReaderUsr.Prop_SurveyId, idList[v].ToString());

                    SurveyedObj[]     SoEnt = SurveyedObj.FindAllByProperties(SurveyedObj.Prop_SurveyId, idList[v].ToString());
                    SurveyReaderObj[] RoEnt = SurveyReaderObj.FindAllByProperties(SurveyReaderObj.Prop_SurveyId, idList[v].ToString());

                    foreach (var ent in Qent)
                    {
                        ent.DoDelete();
                    }
                    foreach (var ent in Aent)
                    {
                        ent.DoDelete();
                    }
                    foreach (var ent in FuEnt)
                    {
                        ent.DoDelete();
                    }
                    foreach (var ent in Ruent)
                    {
                        ent.DoDelete();
                    }
                    foreach (var ent in SoEnt)
                    {
                        ent.DoDelete();
                    }
                    foreach (var ent in RoEnt)
                    {
                        ent.DoDelete();
                    }
                }
                SurveyQuestion.DoBatchDelete(idList.ToArray());
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 生成被调查人员
        /// </summary>
        /// <param name="SurveyId"></param>
        /// <returns></returns>
        public bool CreateSurveyedUser(string SurveyId)
        {
            SurveyedObj Ent = SurveyedObj.FindFirstByProperties(SurveyedObj.Prop_SurveyId, SurveyId);

            // 根据条件筛选的人员
            string where = string.Empty;
            if (string.IsNullOrEmpty(Ent.OrgIds) || string.IsNullOrEmpty(Ent.OrgNames))
            {
                where = " and 1<>1 ";  //组织结构为空情况
            }
            else
            {
                where = AnalyzeSQL(Ent);
            }

            var FilterUsrDt = FilterUser(SurveyId, where);

            //筛选职位
            if (!string.IsNullOrEmpty(Ent.PostionNames))
            {
                string   split   = string.Empty;
                string[] tempArr = Ent.PostionNames.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                for (int j = 0; j < tempArr.Length; j++)
                {
                    if (j > 0)
                    {
                        split += " or ";
                    }
                    split += " JobName like  '%" + tempArr[j] + "%' ";
                }

                DataRow[]  rows       = FilterUsrDt.Select(split); //查询gw
                DataTable  tempDt     = new DataTable();
                DataColumn D_UserId   = new DataColumn("UserId"); tempDt.Columns.Add(D_UserId);
                DataColumn D_UserName = new DataColumn("UserName"); tempDt.Columns.Add(D_UserName);
                DataColumn D_WorkNo   = new DataColumn("WorkNo"); tempDt.Columns.Add(D_WorkNo);
                DataColumn D_JobName  = new DataColumn("JobName"); tempDt.Columns.Add(D_JobName);
                for (int i = 0; i < rows.Length; i++)
                {
                    DataRow dr = tempDt.NewRow();
                    dr["UserId"]   = rows[i]["UserId"];
                    dr["UserName"] = rows[i]["UserName"];
                    dr["WorkNo"]   = rows[i]["WorkNo"];
                    dr["JobName"]  = rows[i]["JobName"];
                    tempDt.Rows.Add(dr);
                }
                if (tempDt.Rows.Count > 0)
                {
                    FilterUsrDt = tempDt;
                }
            }


            //Modify By WGM 8/9
            string SQL = @"with SurObjUsr As 
                            (
                                select CA.* from
                                FL_Culture..SurveyedObj As A 
                                cross apply(
                                     select Filed As UsrID from FL_Culture..GetTblByJson(A.AddUserNames,'Id')
                                ) As CA
                                where SurveyId='{0}'
                            ),
                            UserInfo As (
                              select T.UserID,T.Name,T.WorkNo from SurObjUsr As A 
                                left join FL_PortalHR..Sysuser As T 
                                on A.UsrID=T.UserID 
                            )
                            select distinct * from UserInfo";

            SQL = SQL.Replace("FL_PortalHR", Global.AimPortalDB);
            SQL = string.Format(SQL, SurveyId);

            SQL = "select '' where  1<>1  ";  //Change BY WGM 9-30
            DataTable AddUsrDt = DataHelper.QueryDataTable(SQL);

            //排除的人员
            string ReMoveSQL = @" select CA.* from
                        FL_Culture..SurveyedObj As A 
                        cross apply(
                             select Filed As UserID from FL_Culture..GetTblByJson(A.AddUserNames,'Id')
                        ) As CA
                        where SurveyId='{0}'";

            ReMoveSQL = string.Format(ReMoveSQL, SurveyId);
            ReMoveSQL = "select '' where  1<>1  ";  //Change BY WGM 9-30

            DataTable RemoveDt = DataHelper.QueryDataTable(ReMoveSQL);

            if (RemoveDt.Rows.Count > 0)
            {
                for (int i = 0; i < FilterUsrDt.Rows.Count; i++)
                {
                    for (int j = 0; j < RemoveDt.Rows.Count; j++)
                    {
                        if (FilterUsrDt.Rows[i]["UserID"].ToString() == RemoveDt.Rows[j]["UserID"].ToString())
                        {
                            FilterUsrDt.Rows.Remove(FilterUsrDt.Rows[i]);
                        }
                    }
                }
            }

            //---------------------------生成DataTable-----------------------------

            DataTable  FinalDt     = new DataTable();
            DataColumn Dc_UserId   = new DataColumn("UserId"); FinalDt.Columns.Add(Dc_UserId);
            DataColumn Dc_UserName = new DataColumn("UserName"); FinalDt.Columns.Add(Dc_UserName);
            DataColumn Dc_DeptId   = new DataColumn("DeptId"); FinalDt.Columns.Add(Dc_DeptId);
            DataColumn Dc_DeptName = new DataColumn("DeptName"); FinalDt.Columns.Add(Dc_DeptName);
            DataColumn Dc_WorkNo   = new DataColumn("WorkNo"); FinalDt.Columns.Add(Dc_WorkNo);

            // string FindSQL = @"select FL_Culture.dbo.GetGroupIds('{0}') As DeptId,FL_Culture.dbo.GetGroupNames('{0}') As DeptName";
            for (int i = 0; i < FilterUsrDt.Rows.Count; i++)
            {
                //string tempSQL = string.Format(FindSQL, FilterUsrDt.Rows[i]["UserID"].ToString());
                //DataTable tempDt = DataHelper.QueryDataTable(tempSQL);
                DataRow dr = FinalDt.NewRow();
                //dr["DeptId"] = FilterUsrDt.Rows[i]["GroupIds"];
                //dr["DeptName"] = FilterUsrDt.Rows[i]["GroupNames"];

                string FullDept = WFHelper.getZzjg(FilterUsrDt.Rows[i]["UserID"].ToString(), true);
                dr["DeptName"] = FullDept;
                dr["UserId"]   = FilterUsrDt.Rows[i]["UserID"];   //*
                dr["UserName"] = FilterUsrDt.Rows[i]["UserName"]; //*
                dr["WorkNo"]   = FilterUsrDt.Rows[i]["WorkNo"];

                FinalDt.Rows.Add(dr);
            }

            for (int i = 0; i < AddUsrDt.Rows.Count; i++)
            {
                DataRow dr = FinalDt.NewRow();
                //dr["DeptId"] = AddUsrDt.Rows[i]["GroupID"];
                //dr["DeptName"] = AddUsrDt.Rows[i]["GroupName"];

                string FullDept = WFHelper.getZzjg(AddUsrDt.Rows[i]["UserID"].ToString(), true);
                dr["DeptName"] = FullDept;
                dr["UserId"]   = AddUsrDt.Rows[i]["UserID"]; //*
                dr["UserName"] = AddUsrDt.Rows[i]["Name"];   //*
                dr["WorkNo"]   = AddUsrDt.Rows[i]["WorkNo"];
                FinalDt.Rows.Add(dr);
            }
            //添加问卷发起者
            DataRow CreateRow = FinalDt.NewRow();

            CreateRow["UserId"]   = Ent.CreateId;
            CreateRow["UserName"] = Ent.CreateName;
            FinalDt.Rows.Add(CreateRow);

            //----------------------------------------------------------------------------

            //生成调查用户
            for (int i = 0; i < FinalDt.Rows.Count; i++)
            {
                SurveyFinallyUsr UserEnt = new SurveyFinallyUsr();
                UserEnt.CreateWay = "1";      //1 表示生成的用户而非创建
                UserEnt.SurveyId  = SurveyId;
                UserEnt.DeptName  = FinalDt.Rows[i]["DeptName"].ToString();
                //UserEnt.DeptId = FinalDt.Rows[i]["DeptId"].ToString();
                UserEnt.WorkNo   = FinalDt.Rows[i]["WorkNo"].ToString();
                UserEnt.UserId   = FinalDt.Rows[i]["UserId"].ToString();
                UserEnt.UserName = FinalDt.Rows[i]["UserName"].ToString();
                UserEnt.DoCreate();
            }

            return(true);
        }