예제 #1
0
        public WorkTaskPageView GetCompletedTasks(WorkTaskQueryParm parm)
        {
            parm.ActivityState = 4;
            var rum = new TaskManager();

            return(rum.GetPageByParm(parm));
        }
예제 #2
0
        /// <summary>
        /// 我的申请
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <WorkTaskPageView> GetPageMyApply(WorkTaskQueryParm parm)
        {
            return(await WithConnection(async c =>
            {
                StringBuilder sql = new StringBuilder();
                sql.Append($@"  SELECT pi.ID,
		                                ai.AppName,
		                                ai.ProcessGUID,
		                                pi.Version,
		                                ai.ActivityGUID,
		                                ai.ActivityName,
		                                ai.ActivityType,
		                                ai.WorkItemType,
		                                ai.ActivityState,
		                                pi.ProcessState,
		                                ai.ComplexType,
		                                ai.MIHostActivityInstanceID,
		                                pi.AppInstanceCode,
		                                pi.ProcessName,
		                                pi.CreatedByUserID,
		                                pi.CreatedByUserName,
		                                pi.CreatedDateTime
                                FROM
		                                WfActivityInstance ai
                                INNER JOIN
		                                WfProcessInstance pi ON ai.ProcessInstanceID = pi.ID "        );
                StringBuilder whereSql = new StringBuilder();
                whereSql.Append(" WHERE ai.ActivityType = '1' AND pi.CreatedByUserID = '" + parm.AssignedToUserID + "' ");

                if (parm.AppName != null)
                {
                    whereSql.Append(" and ai.AppName like '%" + parm.AppName.Trim() + "%'");
                }

                sql.Append(whereSql);


                var data = await c.QueryAsync <TaskViewModel>(sql.ToString());
                var total = data.ToList().Count;
                sql.Append(" order by " + parm.sort + " " + parm.order)
                .Append(" limit " + (parm.page - 1) * parm.rows + "," + parm.rows);
                var ets = await c.QueryAsync <TaskViewModel>(sql.ToString());

                WorkTaskPageView ret = new WorkTaskPageView();
                ret.rows = ets.ToList();
                ret.total = total;
                return ret;
            }));
        }
        [HttpPost("QueryReadyTasks")]//pass
        public ResponseResult <WorkTaskPageView> QueryReadyTasks([FromBody] WorkTaskQueryParm query)
        {
            var result = ResponseResult <WorkTaskPageView> .Default();

            try
            {
                var _service = new ResourceService();
                var itemList = _service.GetReadyTasks(query);
                result = ResponseResult <WorkTaskPageView> .Success(itemList);
            }
            catch (System.Exception ex)
            {
                result = ResponseResult <WorkTaskPageView> .Error(string.Format(
                                                                      "获取当前用户待办任务数据失败, 异常信息:{0}",
                                                                      ex.Message));
            }
            return(result);
        }
예제 #4
0
        public async Task <ActionResult <ApiResult> > GetPageMyApply([FromQuery] WorkTaskQueryParm parm)
        {
            ApiResult ret = new ApiResult {
                code = Code.Failure
            };

            try
            {
                ret = await _service.GetPageMyApply(parm);
            }
            catch (System.Exception ex)
            {
                ret.msg = string.Format(
                    "获取当前用户申请数据失败, 异常信息:{0}",
                    ex.Message);
            }
            return(ret);
        }
예제 #5
0
        public async Task <WorkTaskPageView> GetPageList(WorkTaskQueryParm parm)
        {
            return(await WithConnection(async c =>
            {
                StringBuilder sql = new StringBuilder();
                sql.Append($@" SELECT 
                                t.ID,
                                t.AppName,
                                t.AppInstanceID,
                                ai.ProcessGUID,
                                pi.Version,
                                t.ProcessInstanceID,
                                ai.ActivityGUID,
                                t.ActivityInstanceID,
                                ai.ActivityName,
                                ai.ActivityType,
                                ai.WorkItemType,
                                ai.CreatedByUserID,
                                ai.CreatedByUserName,
                                ai.CreatedDateTime,
                                t.TaskType,
                                t.EntrustedTaskID,
                                t.AssignedToUserID,
                                t.AssignedToUserName,
                                t.CreatedDateTime,
                                t.LastUpdatedDateTime,
                                t.EndedDateTime,
                                t.EndedByUserID,
                                t.EndedByUserName,
                                t.TaskState,
                                ai.ActivityState,
                                t.RecordStatusInvalid,
                                pi.ProcessState,
                                ai.ComplexType,
                                ai.MIHostActivityInstanceID,
                                pi.AppInstanceCode,
                                pi.ProcessName,
                                pi.CreatedByUserID,
                                pi.CreatedByUserName,
                                pi.CreatedDateTime,
                                CASE WHEN ai.MIHostActivityInstanceID is null THEN ai.ActivityState ELSE ai1.ActivityState END MiHostState
                            FROM
                                WfActivityInstance ai
                                    INNER JOIN
                                WfTasks t ON ai.ID = t.ActivityInstanceID
                                    INNER JOIN
                                WfProcessInstance pi ON ai.ProcessInstanceID = pi.ID
                                    LEFT JOIN
                                WfActivityInstance ai1 ON ai.MIHostActivityInstanceID = ai1.ID ");
                StringBuilder whereSql = new StringBuilder();
                whereSql.Append(" WHERE pi.ProcessState = '2' AND ( ai.ActivityType = '4' OR ai.WorkItemType = '1' ) AND t.TaskState <> '32' ");
                if (parm.ActivityState != null)
                {
                    if (parm.ActivityState == 1)
                    {
                        whereSql.Append(" and ai.ActivityState != 4 ");
                    }
                    else
                    {
                        whereSql.Append(" and ai.ActivityState =" + parm.ActivityState);
                    }
                }
                if (parm.AssignedToUserID != null)
                {
                    whereSql.Append(" and t.AssignedToUserID =" + parm.AssignedToUserID);
                }
                if (parm.AppName != null)
                {
                    whereSql.Append(" and t.AppName like '%" + parm.AppName.Trim() + "%'");
                }

                sql.Append(whereSql);


                var data = await c.QueryAsync <TaskViewModel>(sql.ToString());
                var total = data.ToList().Count;
                sql.Append(" order by " + parm.sort + " " + parm.order)
                .Append(" limit " + (parm.page - 1) * parm.rows + "," + parm.rows);
                var ets = await c.QueryAsync <TaskViewModel>(sql.ToString());

                WorkTaskPageView ret = new WorkTaskPageView();
                ret.rows = ets.ToList();
                ret.total = total;
                return ret;
            }));
        }
예제 #6
0
        internal WorkTaskPageView GetPageByParm(WorkTaskQueryParm parm)
        {
            return(WithConnection(c =>
            {
                StringBuilder sql = new StringBuilder();
                sql.Append($@" SELECT 
                                t.ID,
                                t.AppName,
                                t.AppInstanceID,
                                ai.ProcessGUID,
                                pi.Version,
                                t.ProcessInstanceID,
                                ai.ActivityGUID,
                                t.ActivityInstanceID,
                                ai.ActivityName,
                                ai.ActivityType,
                                ai.WorkItemType,
                                ai.CreatedByUserID,
                                ai.CreatedByUserName,
                                ai.CreatedDateTime,
                                t.TaskType,
                                t.EntrustedTaskID,
                                t.AssignedToUserID,
                                t.AssignedToUserName,
                                t.CreatedDateTime,
                                t.LastUpdatedDateTime,
                                t.EndedDateTime,
                                t.EndedByUserID,
                                t.EndedByUserName,
                                t.TaskState,
                                ai.ActivityState,
                                t.RecordStatusInvalid,
                                pi.ProcessState,
                                ai.ComplexType,
                                ai.MIHostActivityInstanceID,
                                pi.AppInstanceCode,
                                pi.ProcessName,
                                pi.CreatedByUserID,
                                pi.CreatedByUserName,
                                pi.CreatedDateTime,
                                CASE WHEN ai.MIHostActivityInstanceID is null THEN ai.ActivityState ELSE ai1.ActivityState END MiHostState
                            FROM
                                WfActivityInstance ai
                                    INNER JOIN
                                WfTasks t ON ai.ID = t.ActivityInstanceID
                                    INNER JOIN
                                WfProcessInstance pi ON ai.ProcessInstanceID = pi.ID
                                    LEFT JOIN
                                WfActivityInstance ai1 ON ai.MIHostActivityInstanceID = ai1.ID ");
                StringBuilder whereSql = new StringBuilder();
                whereSql.Append(" WHERE pi.ProcessState = '2' AND ( ai.ActivityType = '4' OR ai.WorkItemType = '1' ) AND t.TaskState <> '32' ");
                if (parm.ActivityState != null)
                {
                    whereSql.Append(" and ai.ActivityState =" + parm.ActivityState);
                }
                if (parm.AssignedToUserID != null)
                {
                    whereSql.Append(" and t.AssignedToUserID =" + parm.AssignedToUserID);
                }

                sql.Append(whereSql);
                string sqltmp = $@" SELECT 
                                t.ID,
                                t.AppName FROM WfTasks t ; ";
                try
                {
                    var data = c.Query <TaskViewModel>(sqltmp);
                }
                catch (Exception ex)
                {
                    string str = ex.ToString();
                }

                int total = 0;
                sql.Append(" order by t." + parm.sort + " " + parm.order)
                .Append(" limit " + (parm.page - 1) * parm.rows + "," + parm.rows);
                //List<TaskViewEntity> ets = c.Query<TaskViewEntity>(sql.ToString()).ToList();

                WorkTaskPageView ret = new WorkTaskPageView();
                //ret.rows = ets;
                ret.total = total;
                return ret;
            }));
        }