示例#1
0
        public List <Entities.ProjectSurveyMapping> GetProjectSurveyMappingList(QueryProjectSurveyMapping query, out int totalCount)
        {
            List <Entities.ProjectSurveyMapping> list = new List <Entities.ProjectSurveyMapping>();

            DataTable dt = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMapping(query, "", 1, 999, out totalCount);

            if (dt != null)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    Entities.ProjectSurveyMapping model = new Entities.ProjectSurveyMapping();
                    model.ProjectID    = int.Parse(dr["ProjectID"].ToString());
                    model.SIID         = int.Parse(dr["SIID"].ToString());
                    model.BeginDate    = dr["BeginDate"].ToString();
                    model.EndDate      = dr["EndDate"].ToString();
                    model.Status       = int.Parse(dr["Status"].ToString());
                    model.CreateUserID = int.Parse(dr["CreateUserID"].ToString());
                    model.CreateTime   = DateTime.Parse(dr["CreateTime"].ToString());

                    list.Add(model);
                }
            }

            return(list);
        }
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Entities.ProjectSurveyMapping GetProjectSurveyMapping(long ProjectID, int SIID)
        {
            QueryProjectSurveyMapping query = new QueryProjectSurveyMapping();

            query.ProjectID = ProjectID;
            query.SIID      = SIID;
            DataTable dt    = new DataTable();
            int       count = 0;

            dt = GetProjectSurveyMapping(query, string.Empty, 1, 1, out count);
            if (count > 0)
            {
                return(LoadSingleProjectSurveyMapping(dt.Rows[0]));
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool IsExistsByProjectIDAndSIID(long ProjectID, int SIID)
        {
            QueryProjectSurveyMapping query = new QueryProjectSurveyMapping();

            query.ProjectID = ProjectID;
            query.SIID      = SIID;
            DataTable dt    = new DataTable();
            int       count = 0;

            dt = GetProjectSurveyMapping(query, string.Empty, 1, 1, out count);
            if (count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 按照查询条件查询
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="order">排序</param>
        /// <param name="currentPage">页号,-1不分页</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="totalCount">总行数</param>
        /// <returns>集合</returns>
        public DataTable GetProjectSurveyMapping(QueryProjectSurveyMapping query, string order, int currentPage, int pageSize, out int totalCount)
        {
            string where = string.Empty;

            if (query.ProjectID != Constant.INT_INVALID_VALUE)
            {
                where += " and ProjectSurveyMapping.ProjectID=" + query.ProjectID + "";
            }
            if (query.SIID != Constant.INT_INVALID_VALUE)
            {
                where += " and ProjectSurveyMapping.SIID=" + query.SIID + "";
            }
            if (query.Status != Constant.INT_INVALID_VALUE)
            {
                where += " and ProjectSurveyMapping.Status=" + query.Status + "";
            }


            DataSet ds;

            SqlParameter[] parameters =
            {
                new SqlParameter("@where",         SqlDbType.NVarChar, 40000),
                new SqlParameter("@order",         SqlDbType.NVarChar,   200),
                new SqlParameter("@pagesize",      SqlDbType.Int,          4),
                new SqlParameter("@indexpage",     SqlDbType.Int,          4),
                new SqlParameter("@totalRecorder", SqlDbType.Int, 4)
            };

            parameters[0].Value     = where;
            parameters[1].Value     = order;
            parameters[2].Value     = pageSize;
            parameters[3].Value     = currentPage;
            parameters[4].Direction = ParameterDirection.Output;

            ds         = SqlHelper.ExecuteDataset(CONNECTIONSTRINGS, CommandType.StoredProcedure, P_PROJECTSURVEYMAPPING_SELECT, parameters);
            totalCount = (int)(parameters[4].Value);
            return(ds.Tables[0]);
        }
示例#5
0
        private void BindData()
        {
            Entities.QueryProjectSurveyMapping query = new QueryProjectSurveyMapping();
            if (RequestSName != "")
            {
                query.SName = StringHelper.SqlFilter(RequestSName);
            }
            if (RequestSBGID != "" && RequestSBGID != "-1")
            {
                query.SBGID = int.Parse(RequestSBGID);
            }
            if (RequestSSCID != "" && RequestSSCID != "-1")
            {
                query.SSCID = int.Parse(RequestSSCID);
            }
            if (RequestPName != "")
            {
                query.PName = StringHelper.SqlFilter(RequestPName);
            }
            if (RequestPBGID != "" && RequestPBGID != "-1")
            {
                query.PBGID = int.Parse(RequestPBGID);
            }
            if (RequestPSCID != "" && RequestPSCID != "-1")
            {
                query.PSCID = int.Parse(RequestPSCID);
            }
            query.LoginID = BLL.Util.GetLoginUserID();

            DataTable dt = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMappingForList(query, " psm.CreateTime DESC ", BLL.PageCommon.Instance.PageIndex, PageSize, out RecordCount);

            repeaterTableList.DataSource = dt;
            repeaterTableList.DataBind();

            litPagerDown.Text = BLL.PageCommon.Instance.LinkStringByPost(BLL.Util.GetUrl(), GroupLength, RecordCount, PageSize, BLL.PageCommon.Instance.PageIndex, 1);
        }
        /// <summary>
        /// 按照查询条件查询(调查项目问卷页面)
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="order">排序</param>
        /// <param name="currentPage">页号,-1不分页</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="totalCount">总行数</param>
        /// <returns>集合</returns>
        public DataTable GetProjectSurveyMappingForList(QueryProjectSurveyMapping query, string order, int currentPage, int pageSize, out int totalCount)
        {
            string where = string.Empty;

            if (query.ProjectID != Constant.INT_INVALID_VALUE)
            {
                where += " and psm.ProjectID=" + query.ProjectID;
            }
            if (query.SIID != Constant.INT_INVALID_VALUE)
            {
                where += " and psm.SIID=" + query.SIID;
            }
            if (query.SName != Constant.STRING_INVALID_VALUE)
            {
                where += " and SurveyInfo.Name like '%" + StringHelper.SqlFilter(query.SName) + "%'";
            }
            if (query.PName != Constant.STRING_INVALID_VALUE)
            {
                where += " and ProjectInfo.Name like '%" + StringHelper.SqlFilter(query.PName) + "%'";
            }
            if (query.SBGID != Constant.INT_INVALID_VALUE)
            {
                where += " and SurveyInfo.BGID=" + query.SBGID;
            }
            if (query.SSCID != Constant.INT_INVALID_VALUE)
            {
                where += " and SurveyInfo.SCID=" + query.SSCID;
            }

            if (query.PBGID != Constant.INT_INVALID_VALUE)
            {
                where += " and ProjectInfo.BGID=" + query.PBGID;
            }
            if (query.PSCID != Constant.INT_INVALID_VALUE)
            {
                where += " and ProjectInfo.PCatageID=" + query.PSCID;
            }
            #region 数据权限判断
            if (query.LoginID != Constant.INT_INVALID_VALUE)
            {
                where += Dal.UserGroupDataRigth.Instance.GetSqlRightstr("ProjectInfo", "BGID", "CreateUserID", query.LoginID);
            }
            #endregion

            DataSet ds;

            SqlParameter[] parameters =
            {
                new SqlParameter("@where",         SqlDbType.NVarChar, 40000),
                new SqlParameter("@order",         SqlDbType.NVarChar,   200),
                new SqlParameter("@pagesize",      SqlDbType.Int,          4),
                new SqlParameter("@indexpage",     SqlDbType.Int,          4),
                new SqlParameter("@totalRecorder", SqlDbType.Int, 4)
            };

            parameters[0].Value     = where;
            parameters[1].Value     = order;
            parameters[2].Value     = pageSize;
            parameters[3].Value     = currentPage;
            parameters[4].Direction = ParameterDirection.Output;

            ds         = SqlHelper.ExecuteDataset(CONNECTIONSTRINGS, CommandType.StoredProcedure, "p_ProjectSurveyMapping_SelectForList", parameters);
            totalCount = (int)(parameters[4].Value);
            return(ds.Tables[0]);
        }
        public void ProcessRequest(HttpContext context)
        {
            BitAuto.YanFa.SysRightManager.Common.UserInfo.Check();
            context.Response.ContentType = "text/plain";
            string msg = "";

            if (Status == "-1")
            {
                int userID = BLL.Util.GetLoginUserID();
                if (!BLL.Util.CheckRight(userID, "SYS024BUT500603"))
                {
                    msg += "您没有执行该操作的的权限";
                    context.Response.Write(msg);
                    return;
                }
            }
            else if (Status == "2")
            {
                int userID = BLL.Util.GetLoginUserID();
                if (!BLL.Util.CheckRight(userID, "SYS024BUT500607"))
                {
                    msg += "您没有执行该操作的的权限";
                    context.Response.Write(msg);
                    return;
                }
            }


            CheckPro(out msg);

            if (msg == "")
            {
                int userID     = BLL.Util.GetLoginUserID();
                int totalCount = 0;

                Entities.ProjectInfo model = new Entities.ProjectInfo();
                model = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID));
                if (model != null)
                {
                    if (Status == "2")
                    {
                        if (model.Source == 1 || model.Source == 2)
                        {
                            Entities.QueryProjectTaskInfo query = new Entities.QueryProjectTaskInfo();
                            query.ProjectID    = int.Parse(ProjectID);
                            query.TaskStatus_s = "180012,180000,180001,180003,180004,180010";

                            DataTable dt = BLL.ProjectTaskInfo.Instance.GetProjectTaskInfo(query, 1, 999999, out totalCount, userID);

                            foreach (DataRow dr in dt.Rows)
                            {
                                BLL.ProjectTaskInfo.Instance.UpdateTaskStatus(dr["PTID"].ToString(), EnumProjectTaskStatus.STOPTask, EnumProjectTaskOperationStatus.TaskFinish, DateTime.Now);
                            }
                        }
                        else
                        {
                            // 结束其他任务
                            DataTable dt = BLL.OtherTaskInfo.Instance.GetStopForOtherTaskInfoByList(int.Parse(ProjectID));
                            foreach (DataRow dr in dt.Rows)
                            {
                                BLL.OtherTaskInfo.Instance.UpdateTaskStatus(dr["PTID"].ToString(), Entities.OtheTaskStatus.StopTask, Entities.EnumProjectTaskOperationStatus.TaskFinish, "结束项目", userID);
                            }
                        }
                    }
                    if (Status == "-1")
                    {
                        //删除问卷
                        Entities.QueryProjectSurveyMapping query = new QueryProjectSurveyMapping();
                        query.ProjectID = int.Parse(ProjectID);

                        List <Entities.ProjectSurveyMapping> mapList = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMappingList(query, out totalCount);

                        if (mapList != null && mapList.Count > 0)
                        {
                            foreach (Entities.ProjectSurveyMapping item in mapList)
                            {
                                item.Status = -1;
                                BLL.ProjectSurveyMapping.Instance.Update(item);
                            }
                        }
                    }

                    #region 修改项目状态
                    model.Status = int.Parse(Status);
                    BLL.ProjectInfo.Instance.Update(model);
                    BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.L4_结束项目, "结束项目-" + model.Name);
                    #endregion

                    #region 停止自动外呼
                    int a = BLL.ProjectInfo.Instance.EndAutoCallProject(model.ProjectID);
                    if (a > 0)
                    {
                        BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.Z6_结束自动外呼, "");
                    }
                    #endregion
                }
                else
                {
                    msg += "没有找到对应的项目";
                }
            }

            if (msg == "")
            {
                msg = "success";
            }
            context.Response.Write(msg);
        }
示例#8
0
 /// <summary>
 /// 按照查询条件查询(调查项目问卷页面)
 /// </summary>
 /// <param name="query">查询条件</param>
 /// <param name="order">排序</param>
 /// <param name="currentPage">页号,-1不分页</param>
 /// <param name="pageSize">每页记录数</param>
 /// <param name="totalCount">总行数</param>
 /// <returns>集合</returns>
 public DataTable GetProjectSurveyMappingForList(QueryProjectSurveyMapping query, string order, int currentPage, int pageSize, out int totalCount)
 {
     return(Dal.ProjectSurveyMapping.Instance.GetProjectSurveyMappingForList(query, order, currentPage, pageSize, out totalCount));
 }
        private void Submit(out string msg, int userID, out int retProjectID)
        {
            msg          = "";
            retProjectID = 0;
            string      datainfoStr = DataStr;
            ProjectInfo sInfoData   = null;

            sInfoData = (ProjectInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(datainfoStr, typeof(ProjectInfo));

            Entities.ProjectInfo             projectModel;
            Entities.ProjectDataSoure        dsModel;
            List <Entities.ProjectDataSoure> dslist      = new List <Entities.ProjectDataSoure>();
            List <Entities.ProjectDataSoure> AddDatalist = new List <Entities.ProjectDataSoure>();

            Entities.ProjectSurveyMapping        psMap;
            List <Entities.ProjectSurveyMapping> psmaplist  = new List <Entities.ProjectSurveyMapping>();
            List <Entities.ProjectSurveyMapping> oldMaplist = new List <ProjectSurveyMapping>();
            List <Entities.ProjectSurveyMapping> newMaplist = new List <ProjectSurveyMapping>();

            List <int> delIds = new List <int>();

            int    sourceid    = int.Parse(sInfoData.Source);
            int    oldSourceId = -1; //原来的来源
            string oldTTCode   = ""; //原来的TTcode
            //add by qizq 2014-11-24 加原bgID,scid
            int oldbgid      = 0;
            int oldpcatageid = 0;

            #region 判断项目名称是否重复
            if (ProjectID == "")
            {
                DataTable dt = BLL.ProjectInfo.Instance.GetDataByName(sInfoData.txtProjectName);
                if (dt.Rows.Count > 0)
                {
                    msg += "已经存在名为【" + sInfoData.txtProjectName + "】的项目!";
                    return;
                }
            }
            #endregion

            #region 项目关联数据
            string[] ids = null;
            //crm来源数据
            if (CrmSelectIDs != "")
            {
                ids = CrmSelectIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            }
            //OTH 来源数据=优先级高
            if (sInfoData.hidExportSelectIDs != "")
            {
                ids = sInfoData.hidExportSelectIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            }
            //hidExportAddIDs:OTH 追加数据
            //hidCrmAddIDs:CRM 追加数据

            //校验4个数据是否都为空
            if (sInfoData.hidExportSelectIDs == "" && sInfoData.hidExportAddIDs == "" && CrmSelectIDs == "" && sInfoData.hidCrmAddIDs == "")
            {
                msg += "没有选择关联数据";
                return;
            }

            //选择的数据 (来源:CRM或者OTH)
            foreach (string id in ids)
            {
                dsModel              = new Entities.ProjectDataSoure();
                dsModel.ProjectID    = -2;
                dsModel.RelationID   = id;
                dsModel.Source       = sourceid;
                dsModel.Status       = 0;//0未生产任务
                dsModel.CreateTime   = DateTime.Now;
                dsModel.CreateUserID = userID;

                dslist.Add(dsModel);
            }

            //OTH追加数据
            if (sInfoData.hidExportAddIDs != "")
            {
                foreach (string id in sInfoData.hidExportAddIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    dsModel              = new Entities.ProjectDataSoure();
                    dsModel.ProjectID    = -2;
                    dsModel.RelationID   = id;
                    dsModel.Source       = sourceid;
                    dsModel.Status       = 0;//0未生产任务
                    dsModel.CreateTime   = DateTime.Now;
                    dsModel.CreateUserID = userID;
                    AddDatalist.Add(dsModel);
                }
            }

            #endregion

            if (ProjectID == "")
            {
                //新增
                #region 项目信息实体
                projectModel                    = new Entities.ProjectInfo();
                projectModel.BGID               = int.Parse(sInfoData.sltUserGroup);
                projectModel.PCatageID          = int.Parse(sInfoData.sltSurveyCategory);
                projectModel.Name               = sInfoData.txtProjectName;
                projectModel.Notes              = sInfoData.txtDescription;
                projectModel.Source             = sourceid;
                projectModel.Status             = 0;
                projectModel.CreateTime         = DateTime.Now;
                projectModel.CreateUserID       = userID;
                projectModel.TTCode             = sInfoData.TTCode;
                projectModel.IsBlacklistCheck   = sInfoData.IsBlacklistCheck;
                projectModel.BlacklistCheckType = sInfoData.BlackListCheckType == 0 ? null : (int?)sInfoData.BlackListCheckType;
                #endregion

                #region 项目管理问卷
                DateTime nowDt = DateTime.Now;
                if (sInfoData.SurveyList != null)
                {
                    int i = 0;
                    foreach (SurveryInfo item in sInfoData.SurveyList)
                    {
                        psMap              = new Entities.ProjectSurveyMapping();
                        psMap.ProjectID    = item.ProjectID == "" ? -2 : int.Parse(item.ProjectID);
                        psMap.SIID         = int.Parse(item.hdnSIID);
                        psMap.BeginDate    = item.beginTime + " 00:00:00";
                        psMap.EndDate      = item.endTime + " 23:59:59";
                        psMap.Status       = 0;//默认是0
                        psMap.CreateTime   = nowDt.AddSeconds((i++) * 2);
                        psMap.CreateUserID = userID;

                        psmaplist.Add(psMap);
                    }
                }

                #endregion
            }
            else
            {
                projectModel = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID));
                if (projectModel == null)
                {
                    msg += "没有找到对应的项目";
                }
                else
                {
                    oldSourceId  = (int)projectModel.Source;
                    retProjectID = (int)projectModel.ProjectID;
                    oldTTCode    = projectModel.TTCode;

                    //add by qizq 2014-11-28
                    oldbgid      = (int)projectModel.BGID;
                    oldpcatageid = (int)projectModel.PCatageID;

                    #region 编辑项目
                    projectModel.BGID      = int.Parse(sInfoData.sltUserGroup);
                    projectModel.PCatageID = int.Parse(sInfoData.sltSurveyCategory);
                    projectModel.Name      = sInfoData.txtProjectName;
                    projectModel.Notes     = sInfoData.txtDescription;
                    projectModel.Source    = sourceid;
                    projectModel.TTCode    = sInfoData.TTCode;
                    #endregion

                    #region 编辑问卷

                    Entities.QueryProjectSurveyMapping query = new QueryProjectSurveyMapping();
                    query.ProjectID = int.Parse(ProjectID);

                    int totalCount = 0;
                    oldMaplist = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMappingList(query, out totalCount);
                    newMaplist = new List <ProjectSurveyMapping>();

                    DateTime nowDt = DateTime.Now;
                    int      i     = 0;
                    foreach (SurveryInfo surinfo in sInfoData.SurveyList)
                    {
                        //查找
                        ProjectSurveyMapping mapModel = oldMaplist.Find(
                            delegate(ProjectSurveyMapping map)
                        {
                            return(map.SIID == int.Parse(surinfo.hdnSIID));
                        }
                            );

                        if (mapModel != null)
                        {
                            //找到了,修改日期

                            mapModel.BeginDate = surinfo.beginTime + " 00:00:00";;
                            mapModel.EndDate   = surinfo.endTime + " 23:59:59";

                            newMaplist.Add(mapModel);
                        }
                        else
                        {
                            //没找到,就是新加的

                            psMap              = new ProjectSurveyMapping();
                            psMap.ProjectID    = -2;
                            psMap.SIID         = int.Parse(surinfo.hdnSIID);
                            psMap.BeginDate    = surinfo.beginTime + " 00:00:00";;
                            psMap.EndDate      = surinfo.endTime + " 23:59:59";
                            psMap.Status       = 0;//默认是0
                            psMap.CreateTime   = nowDt.AddSeconds((i++) * 2);
                            psMap.CreateUserID = userID;

                            newMaplist.Add(psMap);
                        }
                    }

                    //查找删除的
                    foreach (Entities.ProjectSurveyMapping item in oldMaplist)
                    {
                        int isExist = 0;
                        //查找
                        foreach (SurveryInfo surinfo in sInfoData.SurveyList)
                        {
                            if (item.SIID.ToString() == surinfo.hdnSIID)
                            {
                                isExist = 1;
                                break;
                            }
                        }
                        if (isExist == 0)
                        {
                            //没找到,就是删除了

                            delIds.Add(item.SIID);
                        }
                    }
                    #endregion
                }
            }

            #region 提交到数据库
            string        connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC");
            SqlConnection connection        = new SqlConnection(connectionstrings);
            connection.Open();
            SqlTransaction tran = connection.BeginTransaction("SampleTransaction");

            try
            {
                if (ProjectID == "")
                {
                    //新增
                    #region 新增项目
                    retProjectID = BLL.ProjectInfo.Instance.Insert(tran, projectModel);
                    BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L1_新建项目, "新建项目-" + projectModel.Name, tran);
                    #endregion

                    #region 新增数据
                    foreach (Entities.ProjectDataSoure pds in dslist)
                    {
                        pds.ProjectID = retProjectID;
                        BLL.ProjectDataSoure.Instance.Insert(tran, pds);
                    }
                    //add by qizq 2014-11-24 加入数据导入日志
                    Entities.ProjectImportHistory pih = new ProjectImportHistory();
                    pih.ProjectID    = retProjectID;
                    pih.ImportNumber = dslist.Count;
                    pih.CreateTime   = System.DateTime.Now;
                    pih.CreateUserID = userID;
                    BLL.ProjectImportHistory.Instance.Insert(tran, pih);
                    #endregion

                    #region 新增问卷
                    foreach (Entities.ProjectSurveyMapping item in psmaplist)
                    {
                        item.ProjectID = retProjectID;
                        BLL.ProjectSurveyMapping.Instance.Insert(tran, item);
                    }
                    BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L5_修改问卷, "新增问卷" + psmaplist.Count + "条", tran);
                    BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L3_导入数据, "导入数据" + pih.ImportNumber + "条", tran);
                    #endregion
                }
                else
                {
                    #region 编辑项目
                    BLL.ProjectInfo.Instance.Update(tran, projectModel);
                    BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L2_编辑项目, "编辑项目-" + projectModel.Name, tran);
                    #endregion

                    #region 修改关联数据
                    if (projectModel.Status == 0)
                    {
                        //如果未生成任务,选择的数据时先删除、后插入
                        //modify by qizq 2014-11-28 取出所有关联数据,与前台传过来的数据做比较,如果不相同先删除后插入,如果相同不做修改
                        //如果分组,分类,涞源,或对应的模板变了就全部删除,然后插入
                        bool flag = true;
                        if (oldbgid != projectModel.BGID || oldpcatageid != projectModel.PCatageID || oldSourceId != projectModel.Source || oldTTCode != projectModel.TTCode.ToString())
                        {
                            flag = false;
                        }
                        //否则取出所有关联数据做比较,如果发生变化先全部删除后插入
                        else
                        {
                            flag = IsSameProjectDataSource(projectModel.ProjectID, dslist);
                        }
                        if (flag == false)
                        {
                            //删除原来的关联数据
                            BLL.ProjectDataSoure.Instance.DeleteByProjectID(tran, (int)projectModel.ProjectID);
                            //删除日志信息
                            BLL.ProjectImportHistory.Instance.Delete(tran, Convert.ToInt32(projectModel.ProjectID));

                            //插入新的关联数据
                            foreach (Entities.ProjectDataSoure pds in dslist)
                            {
                                pds.ProjectID = projectModel.ProjectID;
                                BLL.ProjectDataSoure.Instance.Insert(tran, pds);
                            }
                            // 添加插入数据日志
                            Entities.ProjectImportHistory pihadd = new ProjectImportHistory();
                            pihadd.ProjectID    = Convert.ToInt32(projectModel.ProjectID);
                            pihadd.ImportNumber = dslist.Count;
                            pihadd.CreateTime   = System.DateTime.Now;
                            pihadd.CreateUserID = userID;
                            BLL.ProjectImportHistory.Instance.Insert(tran, pihadd);

                            BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L3_导入数据, "覆盖数据" + pihadd.ImportNumber + "条", tran);
                        }
                    }
                    else
                    {
                        //如果已生成任务,不用管原来的DataSource
                    }

                    //补充的数据
                    foreach (Entities.ProjectDataSoure pds in AddDatalist)
                    {
                        pds.ProjectID = projectModel.ProjectID;
                        BLL.ProjectDataSoure.Instance.Insert(tran, pds);
                    }
                    //add by qizq 2014-11-24,当补充数据不为空,加补充数据导入日志
                    if (AddDatalist != null && AddDatalist.Count > 0)
                    {
                        Entities.ProjectImportHistory pihadd = new ProjectImportHistory();
                        pihadd.ProjectID    = retProjectID;
                        pihadd.ImportNumber = AddDatalist.Count;
                        pihadd.CreateTime   = System.DateTime.Now;
                        pihadd.CreateUserID = userID;
                        BLL.ProjectImportHistory.Instance.Insert(tran, pihadd);

                        BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L3_导入数据, "追加数据" + pihadd.ImportNumber + "条", tran);
                    }

                    //补充客户回访数据  sInfoData.hidCrmAddIDs
                    if (sInfoData.hidCrmAddIDs != "")
                    {
                        Entities.ProjectDataSoure model = new Entities.ProjectDataSoure();
                        model.ProjectID    = projectModel.ProjectID;
                        model.Source       = projectModel.Source.Value;
                        model.Status       = projectModel.Status;
                        model.CreateTime   = DateTime.Now;
                        model.CreateUserID = userID;

                        int    returnval      = 0;
                        string strrelationIds = "";
                        int    addNum         = 0;
                        foreach (string relationid in sInfoData.hidCrmAddIDs.Split(','))
                        {
                            if (!string.IsNullOrEmpty(relationid))
                            {
                                model.RelationID = relationid;
                                returnval        = BLL.ProjectDataSoure.Instance.Insert(tran, model);
                                if (returnval > 0)
                                {
                                    strrelationIds += "," + relationid;
                                    addNum++;
                                }
                            }
                        }
                        if (strrelationIds.Length > 0)
                        {
                            Entities.ProjectImportHistory pihadd = new ProjectImportHistory();
                            pihadd.ProjectID    = Convert.ToInt32(model.ProjectID);
                            pihadd.ImportNumber = addNum;
                            pihadd.CreateTime   = System.DateTime.Now;
                            pihadd.CreateUserID = userID;
                            BLL.ProjectImportHistory.Instance.Insert(tran, pihadd);
                            BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.L3_导入数据, "追加数据" + pihadd.ImportNumber + "条", tran);
                        }
                    }

                    #endregion

                    #region 编辑或删除问卷
                    int add = 0, mod = 0, del = 0;
                    //删除的问卷
                    foreach (int id in delIds)
                    {
                        BLL.ProjectSurveyMapping.Instance.Delete(long.Parse(ProjectID), id);
                        del++;
                    }
                    for (int i = newMaplist.Count - 1; i >= 0; i--)
                    {
                        if (newMaplist[i].ProjectID != -2)
                        {
                            //编辑了问卷
                            BLL.ProjectSurveyMapping.Instance.Update(tran, newMaplist[i]);
                            mod++;
                        }
                        else
                        {
                            //新增的问卷
                            newMaplist[i].ProjectID = int.Parse(ProjectID);
                            BLL.ProjectSurveyMapping.Instance.Insert(tran, newMaplist[i]);
                            add++;
                        }
                    }
                    if (add + del > 0)
                    {
                        string info = "";
                        if (add > 0)
                        {
                            info += "新增问卷" + add + "条;";
                        }
                        if (del > 0)
                        {
                            info += "删除问卷" + del + "条;";
                        }
                        BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L5_修改问卷, info, tran);
                    }
                    #endregion
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                if (tran.Connection != null)
                {
                    tran.Rollback();
                }
                msg = ex.Message.ToString();
            }
            finally
            {
                connection.Close();
            }

            #endregion
        }