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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index b33799d..6afec74 100644 --- 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 @@ -2,8 +2,9 @@ import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; -import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import lombok.SneakyThrows; import org.apache.commons.lang.StringUtils; import org.flowable.engine.common.api.delegate.event.FlowableEvent; @@ -21,16 +22,15 @@ public class DcmsTaskListener implements FlowableEventListener { - private BizCaseFlowHandler handler; + private IFlowCaseHandler handler; - public DcmsTaskListener(BizCaseFlowHandler handler) { - this.handler = handler; - - } @SneakyThrows @Override public void onEvent(FlowableEvent event) { + if (handler == null) { + handler = SpringContextHolder.getBean(IFlowCaseHandler.class); + } if (event instanceof FlowableEntityWithVariablesEventImpl) { // 当前节点任务实体 TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); 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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index b33799d..6afec74 100644 --- 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 @@ -2,8 +2,9 @@ import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; -import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import lombok.SneakyThrows; import org.apache.commons.lang.StringUtils; import org.flowable.engine.common.api.delegate.event.FlowableEvent; @@ -21,16 +22,15 @@ public class DcmsTaskListener implements FlowableEventListener { - private BizCaseFlowHandler handler; + private IFlowCaseHandler handler; - public DcmsTaskListener(BizCaseFlowHandler handler) { - this.handler = handler; - - } @SneakyThrows @Override public void onEvent(FlowableEvent event) { + if (handler == null) { + handler = SpringContextHolder.getBean(IFlowCaseHandler.class); + } if (event instanceof FlowableEntityWithVariablesEventImpl) { // 当前节点任务实体 TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java new file mode 100644 index 0000000..8b871e2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.flowable.service; + +import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; + +import java.text.ParseException; + +/** + * @ClassName IFlowCaseHandler + * @Description TODO + * @Author lenovo + * @Date 2021/5/8 11:54 + * @Version 1.0 + */ +public interface IFlowCaseHandler { + void processBiz(ProcessDcmsDto dto) throws ParseException; +} 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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index b33799d..6afec74 100644 --- 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 @@ -2,8 +2,9 @@ import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; -import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import lombok.SneakyThrows; import org.apache.commons.lang.StringUtils; import org.flowable.engine.common.api.delegate.event.FlowableEvent; @@ -21,16 +22,15 @@ public class DcmsTaskListener implements FlowableEventListener { - private BizCaseFlowHandler handler; + private IFlowCaseHandler handler; - public DcmsTaskListener(BizCaseFlowHandler handler) { - this.handler = handler; - - } @SneakyThrows @Override public void onEvent(FlowableEvent event) { + if (handler == null) { + handler = SpringContextHolder.getBean(IFlowCaseHandler.class); + } if (event instanceof FlowableEntityWithVariablesEventImpl) { // 当前节点任务实体 TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java new file mode 100644 index 0000000..8b871e2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.flowable.service; + +import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; + +import java.text.ParseException; + +/** + * @ClassName IFlowCaseHandler + * @Description TODO + * @Author lenovo + * @Date 2021/5/8 11:54 + * @Version 1.0 + */ +public interface IFlowCaseHandler { + void processBiz(ProcessDcmsDto dto) throws ParseException; +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java index 609edf8..c9ef85d 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java @@ -4,9 +4,11 @@ import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; import com.casic.missiles.modular.flowable.service.IDcmsFlowBizService; import com.casic.missiles.modular.flowable.service.IDcmsFlowNodeHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; @@ -15,9 +17,10 @@ /** * 业务相关属性处理handler + * @author lwh */ @Component -public class BizCaseFlowHandler { +public class BizCaseFlowHandler implements IFlowCaseHandler { public static final String CASE_HANDLER = "flowNodeHandler"; @Autowired private IDcmsFlowBizService flowBizService; 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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index b33799d..6afec74 100644 --- 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 @@ -2,8 +2,9 @@ import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; -import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import lombok.SneakyThrows; import org.apache.commons.lang.StringUtils; import org.flowable.engine.common.api.delegate.event.FlowableEvent; @@ -21,16 +22,15 @@ public class DcmsTaskListener implements FlowableEventListener { - private BizCaseFlowHandler handler; + private IFlowCaseHandler handler; - public DcmsTaskListener(BizCaseFlowHandler handler) { - this.handler = handler; - - } @SneakyThrows @Override public void onEvent(FlowableEvent event) { + if (handler == null) { + handler = SpringContextHolder.getBean(IFlowCaseHandler.class); + } if (event instanceof FlowableEntityWithVariablesEventImpl) { // 当前节点任务实体 TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java new file mode 100644 index 0000000..8b871e2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.flowable.service; + +import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; + +import java.text.ParseException; + +/** + * @ClassName IFlowCaseHandler + * @Description TODO + * @Author lenovo + * @Date 2021/5/8 11:54 + * @Version 1.0 + */ +public interface IFlowCaseHandler { + void processBiz(ProcessDcmsDto dto) throws ParseException; +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java index 609edf8..c9ef85d 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java @@ -4,9 +4,11 @@ import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; import com.casic.missiles.modular.flowable.service.IDcmsFlowBizService; import com.casic.missiles.modular.flowable.service.IDcmsFlowNodeHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; @@ -15,9 +17,10 @@ /** * 业务相关属性处理handler + * @author lwh */ @Component -public class BizCaseFlowHandler { +public class BizCaseFlowHandler implements IFlowCaseHandler { public static final String CASE_HANDLER = "flowNodeHandler"; @Autowired private IDcmsFlowBizService flowBizService; 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 850f065..76873f2 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 @@ -115,12 +115,6 @@ //更改当前案件状态 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); -// } } @Transactional(rollbackFor = Exception.class) 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 index bdd8740..3f1fee4 100644 --- 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 @@ -1,11 +1,14 @@ package com.casic.missiles.modular.flowable.handler; import com.casic.missiles.core.flowable.BizFlowableEventListenerHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; 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.context.annotation.DependsOn; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -17,13 +20,12 @@ 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)))); + listenerMap.put(FLOWABLE_TASK_NODE_BEFORE_LISTENER, new ArrayList<>(Collections.singletonList(new DcmsTaskListener()))); 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 index b33799d..6afec74 100644 --- 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 @@ -2,8 +2,9 @@ import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; -import com.casic.missiles.modular.flowable.service.handler.BizCaseFlowHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import lombok.SneakyThrows; import org.apache.commons.lang.StringUtils; import org.flowable.engine.common.api.delegate.event.FlowableEvent; @@ -21,16 +22,15 @@ public class DcmsTaskListener implements FlowableEventListener { - private BizCaseFlowHandler handler; + private IFlowCaseHandler handler; - public DcmsTaskListener(BizCaseFlowHandler handler) { - this.handler = handler; - - } @SneakyThrows @Override public void onEvent(FlowableEvent event) { + if (handler == null) { + handler = SpringContextHolder.getBean(IFlowCaseHandler.class); + } if (event instanceof FlowableEntityWithVariablesEventImpl) { // 当前节点任务实体 TaskEntity taskEntity = (TaskEntity) ((FlowableEntityWithVariablesEventImpl) event).getEntity(); diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java new file mode 100644 index 0000000..8b871e2 --- /dev/null +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/IFlowCaseHandler.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.flowable.service; + +import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; + +import java.text.ParseException; + +/** + * @ClassName IFlowCaseHandler + * @Description TODO + * @Author lenovo + * @Date 2021/5/8 11:54 + * @Version 1.0 + */ +public interface IFlowCaseHandler { + void processBiz(ProcessDcmsDto dto) throws ParseException; +} diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java index 609edf8..c9ef85d 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/handler/BizCaseFlowHandler.java @@ -4,9 +4,11 @@ import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto; import com.casic.missiles.modular.flowable.service.IDcmsFlowBizService; import com.casic.missiles.modular.flowable.service.IDcmsFlowNodeHandler; +import com.casic.missiles.modular.flowable.service.IFlowCaseHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; @@ -15,9 +17,10 @@ /** * 业务相关属性处理handler + * @author lwh */ @Component -public class BizCaseFlowHandler { +public class BizCaseFlowHandler implements IFlowCaseHandler { public static final String CASE_HANDLER = "flowNodeHandler"; @Autowired private IDcmsFlowBizService flowBizService; 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 850f065..76873f2 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 @@ -115,12 +115,6 @@ //更改当前案件状态 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); -// } } @Transactional(rollbackFor = Exception.class) diff --git a/casic-web/pom.xml b/casic-web/pom.xml index f7d073a..bf1e5ce 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -66,6 +66,11 @@ com.casic + casic-cws-flow + ${pro.version} + + + com.casic casic-flowable-core ${extension.version} @@ -116,16 +121,8 @@ casic-cache-redis ${extension.version} - - com.casic - casic-cws-flow - ${pro.version} - - - com.casic - casic-cws-flow - ${pro.version} - + + com.casic casic-server