diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java new file mode 100644 index 0000000..bdd8740 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.flowable.handler; + +import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 增加全局异常业务处理 + * + * @author lenovo + */ +@Component +public class CasicBizHander implements BizFlowableEventListenerHandler { + private static final String FLOWABLE_TASK_NODE_BEFORE_LISTENER = "TASK_COMPLETED"; + + @Autowired + private BizCaseFlowHandler handler; + + @Override + public Map> getTypedListeners() { + Map> listenerMap = new HashMap(); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener(handler)))); + return listenerMap; + } +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java new file mode 100644 index 0000000..bdd8740 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.flowable.handler; + +import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 增加全局异常业务处理 + * + * @author lenovo + */ +@Component +public class CasicBizHander implements BizFlowableEventListenerHandler { + private static final String FLOWABLE_TASK_NODE_BEFORE_LISTENER = "TASK_COMPLETED"; + + @Autowired + private BizCaseFlowHandler handler; + + @Override + public Map> getTypedListeners() { + Map> listenerMap = new HashMap(); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener(handler)))); + return listenerMap; + } +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java new file mode 100644 index 0000000..634a5f2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.flowable.handler; + + +import com.alibaba.fastjson.JSON; +import com.casic.missiles.modular.flowable.dto.ProcessDto; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import lombok.SneakyThrows; +import org.apache.commons.lang.StringUtils; +import org.flowable.engine.common.api.delegate.event.FlowableEvent; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.flowable.engine.delegate.event.impl.FlowableEntityWithVariablesEventImpl; +import org.flowable.task.service.impl.persistence.entity.TaskEntity; + +/** + * 任务节点前置监听处理类 + * + * @author: Lu Yang + * @create: 2019-05-04 20:51 + **/ + +public class DcmsTaskListener implements FlowableEventListener { + + + private BizCaseFlowHandler handler; + + public DcmsTaskListener(BizCaseFlowHandler handler) { + this.handler = handler; + + } + + @SneakyThrows + @Override + public void onEvent(FlowableEvent event) { + if (event instanceof FlowableEntityWithVariablesEventImpl) { + // 当前节点任务实体 + TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); + String dtoJson = StringUtils.defaultString(String.valueOf(taskEntity.getVariable("processJson")), "0"); + ProcessDto processDto = JSON.parseObject(dtoJson, ProcessDto.class); + handler.processBiz(processDto); + } + } + + @Override + public boolean isFailOnException() { + return true; + } + +} \ No newline at end of file diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java new file mode 100644 index 0000000..bdd8740 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.flowable.handler; + +import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 增加全局异常业务处理 + * + * @author lenovo + */ +@Component +public class CasicBizHander implements BizFlowableEventListenerHandler { + private static final String FLOWABLE_TASK_NODE_BEFORE_LISTENER = "TASK_COMPLETED"; + + @Autowired + private BizCaseFlowHandler handler; + + @Override + public Map> getTypedListeners() { + Map> listenerMap = new HashMap(); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener(handler)))); + return listenerMap; + } +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java new file mode 100644 index 0000000..634a5f2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.flowable.handler; + + +import com.alibaba.fastjson.JSON; +import com.casic.missiles.modular.flowable.dto.ProcessDto; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import lombok.SneakyThrows; +import org.apache.commons.lang.StringUtils; +import org.flowable.engine.common.api.delegate.event.FlowableEvent; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.flowable.engine.delegate.event.impl.FlowableEntityWithVariablesEventImpl; +import org.flowable.task.service.impl.persistence.entity.TaskEntity; + +/** + * 任务节点前置监听处理类 + * + * @author: Lu Yang + * @create: 2019-05-04 20:51 + **/ + +public class DcmsTaskListener implements FlowableEventListener { + + + private BizCaseFlowHandler handler; + + public DcmsTaskListener(BizCaseFlowHandler handler) { + this.handler = handler; + + } + + @SneakyThrows + @Override + public void onEvent(FlowableEvent event) { + if (event instanceof FlowableEntityWithVariablesEventImpl) { + // 当前节点任务实体 + TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); + String dtoJson = StringUtils.defaultString(String.valueOf(taskEntity.getVariable("processJson")), "0"); + ProcessDto processDto = JSON.parseObject(dtoJson, ProcessDto.class); + handler.processBiz(processDto); + } + } + + @Override + public boolean isFailOnException() { + return true; + } + +} \ No newline at end of file diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java index 3a9435c..133727f 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java @@ -36,8 +36,7 @@ private static final Logger logger = LoggerFactory.getLogger(CaseFlowServiceImpl.class); @Autowired private ICommonPermissionService service; - @Autowired - private BizCaseFlowHandler handler; + @Autowired private IBmsSuportService caseSuportService; @@ -101,12 +100,12 @@ //更改当前案件状态 SqlRunner.db().update("UPDATE DCM_CWS_CASE SET CASE_STATE = {0} WHERE ID = {1}", new Object[]{dto.getChangeState(), dto.getBizId()}); BizFlowUtil.completeCaseTask(dto); - try { - handler.processBiz(dto); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(e); - } +// try { +// handler.processBiz(dto); +// } catch (Exception e) { +// e.printStackTrace(); +// throw new RuntimeException(e); +// } } diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java new file mode 100644 index 0000000..bdd8740 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/CasicBizHander.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.flowable.handler; + +import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 增加全局异常业务处理 + * + * @author lenovo + */ +@Component +public class CasicBizHander implements BizFlowableEventListenerHandler { + private static final String FLOWABLE_TASK_NODE_BEFORE_LISTENER = "TASK_COMPLETED"; + + @Autowired + private BizCaseFlowHandler handler; + + @Override + public Map> getTypedListeners() { + Map> listenerMap = new HashMap(); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener(handler)))); + return listenerMap; + } +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java new file mode 100644 index 0000000..634a5f2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/handler/DcmsTaskListener.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.flowable.handler; + + +import com.alibaba.fastjson.JSON; +import com.casic.missiles.modular.flowable.dto.ProcessDto; +import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import lombok.SneakyThrows; +import org.apache.commons.lang.StringUtils; +import org.flowable.engine.common.api.delegate.event.FlowableEvent; +import org.flowable.engine.common.api.delegate.event.FlowableEventListener; +import org.flowable.engine.delegate.event.impl.FlowableEntityWithVariablesEventImpl; +import org.flowable.task.service.impl.persistence.entity.TaskEntity; + +/** + * 任务节点前置监听处理类 + * + * @author: Lu Yang + * @create: 2019-05-04 20:51 + **/ + +public class DcmsTaskListener implements FlowableEventListener { + + + private BizCaseFlowHandler handler; + + public DcmsTaskListener(BizCaseFlowHandler handler) { + this.handler = handler; + + } + + @SneakyThrows + @Override + public void onEvent(FlowableEvent event) { + if (event instanceof FlowableEntityWithVariablesEventImpl) { + // 当前节点任务实体 + TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); + String dtoJson = StringUtils.defaultString(String.valueOf(taskEntity.getVariable("processJson")), "0"); + ProcessDto processDto = JSON.parseObject(dtoJson, ProcessDto.class); + handler.processBiz(processDto); + } + } + + @Override + public boolean isFailOnException() { + return true; + } + +} \ No newline at end of file diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java index 3a9435c..133727f 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java @@ -36,8 +36,7 @@ private static final Logger logger = LoggerFactory.getLogger(CaseFlowServiceImpl.class); @Autowired private ICommonPermissionService service; - @Autowired - private BizCaseFlowHandler handler; + @Autowired private IBmsSuportService caseSuportService; @@ -101,12 +100,12 @@ //更改当前案件状态 SqlRunner.db().update("UPDATE DCM_CWS_CASE SET CASE_STATE = {0} WHERE ID = {1}", new Object[]{dto.getChangeState(), dto.getBizId()}); BizFlowUtil.completeCaseTask(dto); - try { - handler.processBiz(dto); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(e); - } +// try { +// handler.processBiz(dto); +// } catch (Exception e) { +// e.printStackTrace(); +// throw new RuntimeException(e); +// } } diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/util/BizFlowUtil.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/util/BizFlowUtil.java index b36be92..3ce25ba 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/util/BizFlowUtil.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/util/BizFlowUtil.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.flowable.util; +import com.alibaba.fastjson.JSON; import com.casic.missiles.core.common.exception.BizExceptionEnum; import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.core.util.SpringContextHolder; @@ -10,7 +11,6 @@ import com.casic.missiles.modular.system.model.FlowNextnode; import org.flowable.engine.history.HistoricActivityInstance; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -36,6 +36,7 @@ map.put("groupId", dto.getDispatchDeptId()); map.put("isNeedRevisit", dto.getIsNeedRevisit()); map.put("taskUserId", dto.getTaskUserId()); + map.put("processJson", JSON.toJSONString(dto)); //根据状态变更获取操作描述信息 IFlowNextnodeService flowNextnodeService = SpringContextHolder.getBean(IFlowNextnodeService.class); String operationType = ""; @@ -94,6 +95,7 @@ if (ToolUtil.isNotEmpty(dto.getDispatchDeptId())) { FlowableUtil.changeGroup(taskId, dto.getDispatchDeptId()); } + map.put("processJson", JSON.toJSONString(dto)); FlowableUtil.assigneeTask(taskId, dto.getCurrUser().getUserId()); //获取当前操作描述 FlowableUtil.completeTask(taskId, "", map, operationType, dto.getCurrUser().getDeptId(), dto.getCurrUser().getUserId(), dto.getCurrUser().getRoleTip());