/// <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; } }
/// <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); }
/// <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)); }