Exemple #1
0
        /// <summary>
        /// 获取流程的2个节点的代办
        /// </summary>
        /// <param name="FlowName">流程名称</param>
        /// <param name="beginActivity">开始节点名称</param>
        /// <param name="endActivity">结束节点名称</param>
        /// <returns></returns>
        public List <CrmMessageWorkEntity> GetWorkListByHandTime(HandTimeSearch searchModel)
        {
            try
            {
                var MessageWorkList = new List <CrmMessageWorkEntity>();
                if (string.IsNullOrEmpty(searchModel.BeginActivity) || string.IsNullOrEmpty(searchModel.EndActivity))
                {
                    return(MessageWorkList);
                }
                var sqlStr = string.Format(@"SELECT CM.*,LM.Area CompanyId FROM CRMMESSAGEWORK CM LEFT JOIN  FE_ACTIVITY FA ON FA.ACTIVITYID=CM.ACTIVITYINSTANCEID LEFT JOIN FE_PROCESS FP ON FP.PROCESSID=FA.PROCESSID
LEFT JOIN LicenseMain LM ON LM.Id= CM.FormID
WHERE CM.ROWSTATUS=1 AND FA.ROWSTATUS=1 AND FP.ROWSTATUS=1
AND (FA.NONENAME='{0}' OR FA.NONENAME='{1}')
AND ISREPLY=0 AND CM.[STATE]=2", searchModel.BeginActivity, searchModel.EndActivity);
                if (!string.IsNullOrEmpty(searchModel.FlowName))
                {
                    sqlStr += string.Format(" AND FP.FLOWNAME='{0}'", searchModel.FlowName);
                }
                else
                {
                    sqlStr += " AND FP.FLOWNAME IN('店招标牌批文','临时占道批文','大型户外广告批文')";
                }
                if (searchModel.BeginTime != default(DateTime))
                {
                    sqlStr += string.Format(" AND CM.CREATEON>='{0}'", searchModel.BeginTime.ToString(AppConst.DateFormat));
                }
                if (searchModel.EndTime != default(DateTime))
                {
                    sqlStr += string.Format(" AND CM.CREATEON<='{0} 23:59:59'", searchModel.EndTime.ToString(AppConst.DateFormat));
                }
                sqlStr         += " ORDER BY CM.CREATEON";
                MessageWorkList = DataTableToList(SqlHelper.ExecuteDataset(SqlHelper.SqlConnStringWrite, CommandType.Text, sqlStr).Tables[0]);
                return(MessageWorkList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        /// <summary>
        /// 获取某流程的的两个节点的直接的相差时间的数量
        /// </summary>
        /// <param name="FlowName">流程名称</param>
        /// <param name="beginActivity">开始节点</param>
        /// <param name="endActivity">结束节点</param>
        /// <param name="days">相差天数</param>
        /// <param name="isMore">是否大于</param>
        /// <returns>数量</returns>
        public List <HandTimeArea> GetWorkListByHandTimeSub(HandTimeSearch searchModel)
        {
            var companyList = new CrmCompanyBll().GetAllCompany(new CrmCompanyEntity()
            {
            });
            var handTimeAreaList = new List <HandTimeArea>();

            foreach (var item in companyList)//循环片区
            {
                handTimeAreaList.Add(new HandTimeArea()
                {
                    CompanyId = item.Id,
                    AreaName  = item.FullName,
                    CaseCount = 0
                });
            }

            var crmMessageWork = this.GetWorkListByHandTime(searchModel);

            if (crmMessageWork == null || crmMessageWork.Count <= 0)
            {
                return(handTimeAreaList);
            }
            var crmMessageWork_item = crmMessageWork.GroupBy(i => i.FormID);

            foreach (var item in crmMessageWork_item)
            {
                var comHolidayBll = new ComHolidaysBll();
                var itemList      = item.ToList();
                if (itemList.Count == 2)
                {
                    var beginTime = itemList[0].StartDate;   //第一个节点消息的接收时间
                    var endTime   = itemList[1].ExecuteDate; //第二个节点处理时间
                    if (searchModel.IsMore)
                    {
                        var subDays = comHolidayBll.HolidaySpan(beginTime, endTime, searchModel.Days);
                        if (!subDays)//大于多少天的(工作日)
                        {
                            var areaModel = handTimeAreaList.Find(i => i.CompanyId == itemList[0].CompanyId);
                            if (areaModel != null)
                            {
                                areaModel.CaseCount++;
                            }
                        }
                    }
                    else
                    {
                        var subDays = comHolidayBll.HolidaySpan(beginTime, endTime, searchModel.Days);
                        if (subDays)//多少天以内的
                        {
                            var areaModel = handTimeAreaList.Find(i => i.CompanyId == itemList[0].CompanyId);
                            if (areaModel != null)
                            {
                                areaModel.CaseCount++;
                            }
                        }
                    }
                }
            }
            return(handTimeAreaList);
        }
Exemple #3
0
 /// <summary>
 /// 获取流程的2个节点的代办
 /// </summary>
 /// <param name="FlowName">流程名称</param>
 /// <param name="beginActivity">开始节点名称</param>
 /// <param name="endActivity">结束节点名称</param>
 /// <returns></returns>
 public List <CrmMessageWorkEntity> GetWorkListByHandTime(HandTimeSearch searchModel)
 {
     return(new CrmMessageWorkDal().GetWorkListByHandTime(searchModel));
 }