提交 f648e17f 编写于 作者: PS2021TTWAJMIB\Admin's avatar PS2021TTWAJMIB\Admin

添加督办所有查询

上级 3ff8d523
......@@ -478,6 +478,8 @@ public class WFCoreService
tasks = searchMyDoneTask(context);
else if(TaskType.FINISH == type)
tasks = searchMyFinishTask(context);
else if(TaskType.ALL==type)
tasks = searchMyAllTask(context);
else
tasks = searchMyTask(context);
if(!ObjectUtils.isEmpty(tasks)){
......@@ -498,6 +500,12 @@ public class WFCoreService
return businessKeys;
}
private Page<WFTask> searchMyAllTask(WFTaskSearchContext context) {
context.setSort("createtime,desc");
com.baomidou.mybatisplus.extension.plugins.pagination.Page<WFTask> pages = wfCoreMapper.searchMyAllTask(context.getPages(),context,context.getSearchCond());
return new PageImpl<WFTask>(pages.getRecords(),context.getPageable(),pages.getTotal());
}
private Page<WFTask> searchMyUnreadTask(WFTaskSearchContext context) {
context.setSort("createtime,desc");
com.baomidou.mybatisplus.extension.plugins.pagination.Page<WFTask> pages=wfCoreMapper.searchUnReadTask(context.getPages(),context,context.getSelectCond());
......
......@@ -4,6 +4,7 @@ import cn.ibizlab.core.workflow.domain.WFProcessNode;
import cn.ibizlab.core.workflow.domain.WFTask;
import cn.ibizlab.core.workflow.filter.WFTaskSearchContext;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.*;
......@@ -28,4 +29,7 @@ public interface WFCoreMapper {
Page<WFTask> searchMyFinishTask(IPage page, @Param("srf") WFTaskSearchContext context, @Param("ew") Wrapper<WFTask> wrapper) ;
Object readTask(@Param("et")Map param);
Page<WFTask> searchMyAllTask(IPage page, @Param("srf") WFTaskSearchContext context, @Param("ew") Wrapper<WFTask> wrapper) ;
}
......@@ -4,14 +4,36 @@
<mapper namespace="cn.ibizlab.core.workflow.mapper.WFCoreMapper">
<select id="searchMyTask" parameterType="cn.ibizlab.core.workflow.filter.WFTaskSearchContext" resultType="cn.ibizlab.core.workflow.domain.WFTask">
select t1.TaskId as Id, t1.DefinitionId as ProcessDefinitionId, t1.DefinitionName as ProcessDefinitionName, t1.DefinitionKey as ProcessDefinitionKey, t1.InstanceId as ProcessInstanceId,
t1.TaskName as Name, t1.TaskDefinitionKey, t1.BusinessKey as ProcessInstanceBusinessKey, t1.Description, t1.CreateTime from (
select res.ID_ as TaskId,res.PROC_DEF_ID_ as DefinitionId,arp.NAME_ as DefinitionName,arp.KEY_ as DefinitionKey,
res.PROC_INST_ID_ as InstanceId,res.NAME_ as TaskName,res.TASK_DEF_KEY_ as TaskDefinitionKey,res.CATEGORY_ as BusinessKey,
res.DESCRIPTION_ as Description,res.CREATE_TIME_ as CreateTime
from ACT_RU_TASK RES inner join act_re_procdef arp on RES.PROC_DEF_ID_ = arp.ID_
where RES.ASSIGNEE_ = #{srf.sessioncontext.srfuserid} or ( RES.ASSIGNEE_ IS NULL AND
exists (select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and LINK.USER_ID_ = #{srf.sessioncontext.srfuserid}) )
SELECT
t1.TaskId AS Id,
t1.DefinitionId AS ProcessDefinitionId,
t1.DefinitionName AS ProcessDefinitionName,
t1.DefinitionKey AS ProcessDefinitionKey,
t1.InstanceId AS ProcessInstanceId,
t1.TaskName AS NAME,
t1.TaskDefinitionKey,
t1.BusinessKey AS ProcessInstanceBusinessKey,
t1.Description,
t1.CreateTime
FROM
(
SELECT
res.ID_ AS TaskId,
res.PROC_DEF_ID_ AS DefinitionId,
arp.NAME_ AS DefinitionName,
arp.KEY_ AS DefinitionKey,
res.PROC_INST_ID_ AS InstanceId,
res.NAME_ AS TaskName,
res.TASK_DEF_KEY_ AS TaskDefinitionKey,
res.CATEGORY_ AS BusinessKey,
res.DESCRIPTION_ AS Description,
res.CREATE_TIME_ AS CreateTime
FROM
ACT_RU_TASK RES
INNER JOIN act_re_procdef arp ON RES.PROC_DEF_ID_ = arp.ID_
WHERE
RES.ASSIGNEE_ = #{srf.sessioncontext.srfuserid} or ( RES.ASSIGNEE_ IS NULL AND
EXISTS ( SELECT LINK.ID_ FROM ACT_RU_IDENTITYLINK LINK WHERE LINK.TASK_ID_ = RES.ID_ AND LINK.USER_ID_ = #{srf.sessioncontext.srfuserid}) )
) t1
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
......@@ -164,5 +186,50 @@
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
<select id="searchMyAllTask" parameterType="cn.ibizlab.core.workflow.filter.WFTaskSearchContext" resultType="cn.ibizlab.core.workflow.domain.WFTask">
<![CDATA[
SELECT
t1.TaskId AS Id,
t1.DefinitionId AS ProcessDefinitionId,
t1.DefinitionName AS ProcessDefinitionName,
t1.DefinitionKey AS ProcessDefinitionKey,
t1.InstanceId AS ProcessInstanceId,
t1.TaskName AS NAME,
t1.TaskDefinitionKey,
t1.BusinessKey AS ProcessInstanceBusinessKey,
t1.Description,
t1.CreateTime
FROM
(
SELECT
res.ID_ AS TaskId,
res.PROC_DEF_ID_ AS DefinitionId,
arp.NAME_ AS DefinitionName,
arp.KEY_ AS DefinitionKey,
res.PROC_INST_ID_ AS InstanceId,
res.NAME_ AS TaskName,
res.TASK_DEF_KEY_ AS TaskDefinitionKey,
res.CATEGORY_ AS BusinessKey,
res.DESCRIPTION_ AS Description,
res.CREATE_TIME_ AS CreateTime
FROM
ACT_RU_TASK RES
INNER JOIN act_re_procdef arp ON RES.PROC_DEF_ID_ = arp.ID_
INNER JOIN ACT_HI_PROCINST HPI ON RES.PROC_INST_ID_ = HPI.ID_
INNER JOIN act_hi_taskinst aht ON RES.ID_ = aht.ID_
WHERE
(aht.END_TIME_ IS NOT NULL
OR HPI.END_TIME_ IS NULL )
AND RES.ASSIGNEE_ IS NULL
OR RES.ASSIGNEE_ = #{srf.sessioncontext.srfuserid}
OR (
RES.ASSIGNEE_ IS NULL
AND EXISTS ( SELECT LINK.ID_ FROM ACT_RU_IDENTITYLINK LINK WHERE LINK.TASK_ID_ = RES.ID_ AND LINK.USER_ID_ = #{srf.sessioncontext.srfuserid} )
)
) t1
]]>
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
</mapper>
\ No newline at end of file
......@@ -97,6 +97,13 @@ public class WFCoreResource
@PathVariable("entity") String entity, @PathVariable("insttag") String instTag , @PathVariable("insttag2") String instTag2) {
return ResponseEntity.status(HttpStatus.OK).body(wfCoreService.getDynaBusinessKeys(system,"",entity,instTag,instTag2,userId, TaskType.FINISH));
}
@ApiOperation(value = "getBusinessKeys", tags = {"String" }, notes = "根据流程步骤查询我的办结主键清单")
@RequestMapping(method = RequestMethod.POST, value = "/{system}-user-{userId}/{insttag}/{insttag2}/{entity}/tasks/all")
public ResponseEntity<Map<String,Map<String,Object>>> getAllByUserId(@PathVariable("system") String system, @PathVariable("userId") String userId,
@PathVariable("entity") String entity, @PathVariable("insttag") String instTag , @PathVariable("insttag2") String instTag2){
return ResponseEntity.status(HttpStatus.OK).body(wfCoreService.getDynaBusinessKeys(system,"",entity,instTag,instTag2,userId,TaskType.ALL));
}
@ApiOperation(value = "标记任务已读", tags = {"工作流标记任务已读" }, notes = "标记任务已读")
@RequestMapping(method = RequestMethod.POST, value = "/{system}-app-{appname}/{entity}/{businessKey}/tasks/{taskId}/read")
......
......@@ -19,5 +19,9 @@ public enum TaskType {
/**
* 办结
*/
FINISH;
FINISH,
/**
* 全部
*/
ALL;
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册