Browse Source

[feat]增加处理中逻辑

dev
杨威 1 week ago
parent
commit
3970bd5b93
  1. 6
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  2. 8
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  3. 2
      dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java
  4. 11
      dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java
  5. 11
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

6
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -584,10 +584,12 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
}
String tableWorkflow = ptPrefix.getTableWorkflow(); // eg: "dk_workflow"
wrapper.notIn("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus());
// wrapper.notIn("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus());
wrapper.eq("t.handle_type", BusinessStatusEnum.WAITING.getStatus());
// wrapper.apply(" EXISTS(select * from w_dk_workflow.flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)");
wrapper.apply(" EXISTS(select * from "+tableWorkflow+".flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)");
// wrapper.apply(" EXISTS(select * from "+tableWorkflow+".flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)");
Page<BusinessAlert> page = this.baseMapper.pageBusinessAlertHandle(pageQuery.build(), wrapper, ptPrefix);

8
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -66,14 +66,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="pageBusinessAlertHandle" resultType="org.dromara.business.domain.BusinessAlert">
select t.* from (
select
ba.*,
b.flow_status flowStatus,
b.business_id businessId,
b.id instanceId
ba.*
from ${tbPrefix.tableBusiness}.business_alert ba
inner join ${tbPrefix.tableWorkflow}.flow_instance b on ba.id = b.business_id
where
b.del_flag = '0'
) t
${ew.getCustomSqlSegment}
</select>

2
dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java

@ -99,6 +99,8 @@ public class CompleteTaskBo implements Serializable {
*/
private Boolean assign = false;
private Boolean firstNode = false;
public Map<String, Object> getVariables() {
if (variables == null) {
return new HashMap<>(16);

11
dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java

@ -51,13 +51,24 @@ public class FlwAlertHandler implements FlwCommonHandler {
@Override
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
String assignName = null;
Boolean firstAlert = false;
if (ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams())){
assignName = ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams().get("handler"))?(String)processCreateTaskEvent.getParams().get("handler"):null;
firstAlert = ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams().get("firstNode"))?(Boolean)processCreateTaskEvent.getParams().get("firstNode"):false;
}
//属于第一个节点,还未走到审核节点
if (firstAlert){
alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.TODO.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType(),processCreateTaskEvent.getMessage(),assignName);
}else {
alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType(),processCreateTaskEvent.getMessage(),assignName);
}
}
/**
* 监听删除流程事件
* 正常使用只需#processDeleteEvent.flowCode=='leave1'

11
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@ -158,7 +158,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
dto.setProcessInstanceId(instance.getId());
dto.setTaskId(taskList.get(0).getId());
executeTask(taskList.get(0).getId());
executeTask(taskList.get(0).getId(),true);
return dto;
}
@ -203,6 +203,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
variables.put("assign",completeTaskBo.getAssign());
variables.put("handler", completeTaskBo.getHandler());
if (completeTaskBo.getFirstNode()){
variables.put("firstNode", true);
}else {
variables.put("firstNode", false);
}
flowParams.variable(variables);
flowParams.skipType(SkipType.PASS.getKey());
flowParams.message(completeTaskBo.getMessage());
@ -900,10 +906,11 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 初始化流程任务
* @param taskId
*/
public boolean executeTask(Long taskId) {
public boolean executeTask(Long taskId,Boolean firstNode) {
CompleteTaskBo completeTaskBo = new CompleteTaskBo();
completeTaskBo.setTaskId(taskId);
completeTaskBo.setMessageType(List.of(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
completeTaskBo.setFirstNode(firstNode);
IFlwTaskService service = applicationContext.getBean(IFlwTaskService.class);
service.completeTask(completeTaskBo);
return true;

Loading…
Cancel
Save