提交 36f53b3b 编写于 作者: zhouweidong's avatar zhouweidong

工作流待阅

上级 89978a50
......@@ -20,4 +20,8 @@ public interface WFCoreMapper {
List<WFProcessNode> searchMyTaskCnt(@Param("srf") WFTaskSearchContext context, @Param("ew") Wrapper<WFTask> wrapper) ;
List<Map> searchUserTask(@Param("et")Map param) ;
Page<WFTask> searchUnReadTask(IPage page, @Param("srf") WFTaskSearchContext context, @Param("ew") Wrapper<WFTask> wrapper) ;
Object readTask(@Param("et")Map param);
}
......@@ -63,4 +63,25 @@
and t2.PROC_INST_ID_=#{et.processinstanceid}
</select>
<select id="readTask" parameterType="java.util.Map" resultType="java.util.Map">
UPDATE ACT_RU_IDENTITYLINK T SET T.SCOPE_TYPE_= 'READ' WHERE T.TASK_ID_ = #{et.taskid} AND T.USER_ID_=#{et.userid}
</select>
<select id="searchUnReadTask" 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_
where
exists (select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and LINK.USER_ID_ = #{srf.sessioncontext.srfuserid} and (LINK.SCOPE_TYPE_ IS NULL OR (LINK.SCOPE_TYPE_ IS NOT NULL AND LINK.SCOPE_TYPE_ <>'READ') ) )
) 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
......@@ -4,6 +4,7 @@ import cn.ibizlab.api.mapping.WFTaskMapping;
import cn.ibizlab.core.workflow.domain.*;
import cn.ibizlab.core.workflow.extensions.service.WFCoreService;
import cn.ibizlab.core.workflow.filter.WFTaskSearchContext;
import cn.ibizlab.util.enums.TaskType;
import cn.ibizlab.util.errors.BadRequestAlertException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -55,9 +56,25 @@ public class WFCoreResource
@ApiOperation(value = "getBusinessKeys", tags = {"String" }, notes = "根据动态实例查询我的待办主键清单")
@RequestMapping(method = RequestMethod.POST, value = "/{system}-user-{userId}/{dynainstid}/{entity}/tasks")
public ResponseEntity<Map<String,Map<String,Object>>> getDynaBusinesskeysByUserId(@PathVariable("system") String system, @PathVariable("userId") String userId,
public ResponseEntity<Map<String,Map<String,Object>>> getTaskByUserId(@PathVariable("system") String system, @PathVariable("userId") String userId,
@PathVariable("entity") String entity, @PathVariable("dynainstid") String dynainstid) {
return ResponseEntity.status(HttpStatus.OK).body(wfCoreService.getDynaBusinessKeys(system,"",entity,dynainstid,userId));
return ResponseEntity.status(HttpStatus.OK).body(wfCoreService.getDynaBusinessKeys(system,"",entity,dynainstid,userId, TaskType.WORK));
}
@ApiOperation(value = "getBusinessKeys", tags = {"String" }, notes = "根据流程步骤查询我的待阅主键清单")
@RequestMapping(method = RequestMethod.POST, value = "/{system}-user-{userId}/{dynainstid}/{entity}/tasks/unread")
public ResponseEntity<Map<String,Map<String,Object>>> getUnReadTaskByUserId(@PathVariable("system") String system, @PathVariable("userId") String userId,
@PathVariable("entity") String entity, @PathVariable("dynainstid") String dynainstid) {
return ResponseEntity.status(HttpStatus.OK).body(wfCoreService.getDynaBusinessKeys(system,"",entity,dynainstid,userId, TaskType.READ));
}
@ApiOperation(value = "标记任务已读", tags = {"工作流标记任务已读" }, notes = "标记任务已读")
@RequestMapping(method = RequestMethod.POST, value = "/{system}-app-{appname}/{entity}/{businessKey}/tasks/{taskId}/read")
public ResponseEntity<Boolean> readTask(@PathVariable("system") String system,@PathVariable("appname") String appname,
@PathVariable("entity") String entity,
@PathVariable("businessKey") String businessKey,@PathVariable("taskId") String taskId,
@RequestBody WFTaskWay taskWay) {
return ResponseEntity.ok(wfCoreService.readTask(system,appname,entity,businessKey,taskId,taskWay));
}
@ApiOperation(value = "getWFProcessDefinition", tags = {"WFProcessDefinition" }, notes = "根据系统实体查找当前适配的工作流模型")
......
package cn.ibizlab.util.enums;
/**
* 任务类型
*/
public enum TaskType {
/**
* 待办
*/
WORK,
/**
* 待阅
*/
READ;
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册