diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
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 01b1ee1..1504ede 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
@@ -62,6 +62,7 @@
*/
@Value("${casic.case.defaultLimitTime:120}")
private Integer defaultLimitTime;
+
@Autowired
private ProcessEngine processEngine;
@@ -136,9 +137,12 @@
}
}
if (count == 1) {
- //执行自动流转
+ //执行自动流转 流程处理handler中会进行推送处理
dto.setCurrState(autoNode.getState());
dto.setChangeState(autoNode.getNextState());
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(autoNode.getIsPush());
+ }
this.completeCaseTask(dto);
}
}
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
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 01b1ee1..1504ede 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
@@ -62,6 +62,7 @@
*/
@Value("${casic.case.defaultLimitTime:120}")
private Integer defaultLimitTime;
+
@Autowired
private ProcessEngine processEngine;
@@ -136,9 +137,12 @@
}
}
if (count == 1) {
- //执行自动流转
+ //执行自动流转 流程处理handler中会进行推送处理
dto.setCurrState(autoNode.getState());
dto.setChangeState(autoNode.getNextState());
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(autoNode.getIsPush());
+ }
this.completeCaseTask(dto);
}
}
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 7eba9ed..0db81b7 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
@@ -39,11 +39,12 @@
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 = "";
boolean isExist = false;
+ String nodePush = null;
EntityWrapper query = new EntityWrapper<>();
query.eq(FlowNodeConstant.STATE, dto.getCurrState());
List flowNextnodes = flowNextnodeService.getFlowNextnodesByCurrState(query);
@@ -58,6 +59,7 @@
operationType = flowNextnode.getOperation();
isExist = true;
}
+ nodePush = flowNextnode.getIsShow();
}
}
@@ -66,7 +68,11 @@
ex.setMessage("该流转节点不存在,请确认");
throw ex;
}
-
+ //如果案卷处理节点信息需要推送则设置标志位
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(nodePush);
+ }
+ map.put("processJson", JSON.toJSONString(dto));
FlowableUtil.completeTask(dto.getTaskId(), dto.getRemarks(), map, operationType, dto.getCurrUser().getDeptId(), dto.getCurrUser().getUserId(), dto.getCurrUser().getRoleTip());
//流转后指派下级节点任务
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
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 01b1ee1..1504ede 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
@@ -62,6 +62,7 @@
*/
@Value("${casic.case.defaultLimitTime:120}")
private Integer defaultLimitTime;
+
@Autowired
private ProcessEngine processEngine;
@@ -136,9 +137,12 @@
}
}
if (count == 1) {
- //执行自动流转
+ //执行自动流转 流程处理handler中会进行推送处理
dto.setCurrState(autoNode.getState());
dto.setChangeState(autoNode.getNextState());
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(autoNode.getIsPush());
+ }
this.completeCaseTask(dto);
}
}
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 7eba9ed..0db81b7 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
@@ -39,11 +39,12 @@
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 = "";
boolean isExist = false;
+ String nodePush = null;
EntityWrapper query = new EntityWrapper<>();
query.eq(FlowNodeConstant.STATE, dto.getCurrState());
List flowNextnodes = flowNextnodeService.getFlowNextnodesByCurrState(query);
@@ -58,6 +59,7 @@
operationType = flowNextnode.getOperation();
isExist = true;
}
+ nodePush = flowNextnode.getIsShow();
}
}
@@ -66,7 +68,11 @@
ex.setMessage("该流转节点不存在,请确认");
throw ex;
}
-
+ //如果案卷处理节点信息需要推送则设置标志位
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(nodePush);
+ }
+ map.put("processJson", JSON.toJSONString(dto));
FlowableUtil.completeTask(dto.getTaskId(), dto.getRemarks(), map, operationType, dto.getCurrUser().getDeptId(), dto.getCurrUser().getUserId(), dto.getCurrUser().getRoleTip());
//流转后指派下级节点任务
diff --git a/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
new file mode 100644
index 0000000..e2d64f9
--- /dev/null
+++ b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.cwscase.dto;
+
+import lombok.Data;
+
+/**
+ * @ClassName CasePushDTO
+ * @Description 城管消息推送DTO
+ * @Author lwh
+ * @Date 2021/5/14 17:54
+ * @Version 1.0
+ */
+@Data
+public class CasePushDTO {
+ private String id;
+}
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
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 01b1ee1..1504ede 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
@@ -62,6 +62,7 @@
*/
@Value("${casic.case.defaultLimitTime:120}")
private Integer defaultLimitTime;
+
@Autowired
private ProcessEngine processEngine;
@@ -136,9 +137,12 @@
}
}
if (count == 1) {
- //执行自动流转
+ //执行自动流转 流程处理handler中会进行推送处理
dto.setCurrState(autoNode.getState());
dto.setChangeState(autoNode.getNextState());
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(autoNode.getIsPush());
+ }
this.completeCaseTask(dto);
}
}
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 7eba9ed..0db81b7 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
@@ -39,11 +39,12 @@
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 = "";
boolean isExist = false;
+ String nodePush = null;
EntityWrapper query = new EntityWrapper<>();
query.eq(FlowNodeConstant.STATE, dto.getCurrState());
List flowNextnodes = flowNextnodeService.getFlowNextnodesByCurrState(query);
@@ -58,6 +59,7 @@
operationType = flowNextnode.getOperation();
isExist = true;
}
+ nodePush = flowNextnode.getIsShow();
}
}
@@ -66,7 +68,11 @@
ex.setMessage("该流转节点不存在,请确认");
throw ex;
}
-
+ //如果案卷处理节点信息需要推送则设置标志位
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(nodePush);
+ }
+ map.put("processJson", JSON.toJSONString(dto));
FlowableUtil.completeTask(dto.getTaskId(), dto.getRemarks(), map, operationType, dto.getCurrUser().getDeptId(), dto.getCurrUser().getUserId(), dto.getCurrUser().getRoleTip());
//流转后指派下级节点任务
diff --git a/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
new file mode 100644
index 0000000..e2d64f9
--- /dev/null
+++ b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.cwscase.dto;
+
+import lombok.Data;
+
+/**
+ * @ClassName CasePushDTO
+ * @Description 城管消息推送DTO
+ * @Author lwh
+ * @Date 2021/5/14 17:54
+ * @Version 1.0
+ */
+@Data
+public class CasePushDTO {
+ private String id;
+}
diff --git a/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java b/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
index ecce0ef..aef18fb 100644
--- a/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
+++ b/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
@@ -105,7 +105,10 @@
private String areaCode;
private String fieldintro;
private Long gridId;
-
+ /**
+ * 是否需要推送消息
+ */
+ private String isPush;
/**
* 【五包】-处罚类型
*/
diff --git a/casic-service-cws/casic-cws-flow/pom.xml b/casic-service-cws/casic-cws-flow/pom.xml
index 63571a1..8b5f667 100644
--- a/casic-service-cws/casic-cws-flow/pom.xml
+++ b/casic-service-cws/casic-cws-flow/pom.xml
@@ -36,7 +36,11 @@
casic-admin-support
${admin.version}
-
+
+ com.casic
+ casic-push-support
+ ${extension.version}
+
com.casic
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 984e34d..0a45adc 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
@@ -1,22 +1,32 @@
package com.casic.missiles.modular.flowable.service.handler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.casic.missiles.core.MessageBody;
+import com.casic.missiles.core.common.constant.Const;
+import com.casic.missiles.core.enums.PushMessageType;
+import com.casic.missiles.core.service.ICommonPushService;
import com.casic.missiles.core.util.SpringContextHolder;
+import com.casic.missiles.core.util.ToolUtil;
+import com.casic.missiles.modular.cwscase.dto.CasePushDTO;
+import com.casic.missiles.modular.cwscase.model.CwsCase;
import com.casic.missiles.modular.flowable.dto.ProcessDcmsDto;
+import com.casic.missiles.modular.flowable.service.ICwsSuportService;
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;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 业务相关属性处理handler
+ *
* @author lwh
*/
@Component
@@ -28,8 +38,14 @@
private String[] stateInts;
@Value("${casic.dcms.limitTimeNoUpdate.node}")
private String[] nodeStrs;
+ @Value("${casic.push.title}")
+ private String title;
private static List states = null;
private static List nodes = null;
+ @Autowired(required = false)
+ private ICommonPushService pushService;
+ @Autowired
+ private ICwsSuportService cwsSuportService;
static {
//二级部门内部相关处理不进行当前节点要求更新 39 30 37 45 301 302 303 304 46
@@ -50,7 +66,7 @@
* @param dto
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void processBiz(ProcessDcmsDto dto) throws ParseException {
if (states == null) {
states = Arrays.asList(stateInts);
@@ -67,6 +83,35 @@
//案件处置中的 状态不发生变更 延期及缓办同意发生节点时间变更
flowBizService.updateCwsNodeLimitTime(dto);
+ //推送消息体
+ if (Const.ONE.equals(dto.getIsPush()) && pushService != null) {
+ if (ToolUtil.isNotEmpty(dto.getTaskUserId())) {
+ CwsCase cwsCase = cwsSuportService.selectCaseById(dto.getBizId());
+ MessageBody messageBody = this.covertMessageBody(cwsCase);
+ //如果指定到人则进行人员案卷推送信息
+ List users = new ArrayList<>();
+ users.add(new Long(dto.getTaskUserId()));
+ pushService.pushMsgByUsers(users, messageBody);
+ }
+ }
+ }
+ /**
+ * 转换案卷类型为推送消息
+ *
+ * @param cwsCase
+ * @return
+ */
+ private MessageBody covertMessageBody(CwsCase cwsCase) {
+ CasePushDTO pushDTO = new CasePushDTO();
+ pushDTO.setId(String.valueOf(cwsCase.getId()));
+
+ MessageBody body = new MessageBody();
+ body.setId(IdWorker.getId());
+ body.setData(pushDTO);
+ body.setTitle(String.format(title, cwsCase.getCaseid()));
+ body.setContent(cwsCase.getDescription());
+ body.setType(PushMessageType.NORMAL.getType());
+ return body;
}
}
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 01b1ee1..1504ede 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
@@ -62,6 +62,7 @@
*/
@Value("${casic.case.defaultLimitTime:120}")
private Integer defaultLimitTime;
+
@Autowired
private ProcessEngine processEngine;
@@ -136,9 +137,12 @@
}
}
if (count == 1) {
- //执行自动流转
+ //执行自动流转 流程处理handler中会进行推送处理
dto.setCurrState(autoNode.getState());
dto.setChangeState(autoNode.getNextState());
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(autoNode.getIsPush());
+ }
this.completeCaseTask(dto);
}
}
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 7eba9ed..0db81b7 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
@@ -39,11 +39,12 @@
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 = "";
boolean isExist = false;
+ String nodePush = null;
EntityWrapper query = new EntityWrapper<>();
query.eq(FlowNodeConstant.STATE, dto.getCurrState());
List flowNextnodes = flowNextnodeService.getFlowNextnodesByCurrState(query);
@@ -58,6 +59,7 @@
operationType = flowNextnode.getOperation();
isExist = true;
}
+ nodePush = flowNextnode.getIsShow();
}
}
@@ -66,7 +68,11 @@
ex.setMessage("该流转节点不存在,请确认");
throw ex;
}
-
+ //如果案卷处理节点信息需要推送则设置标志位
+ if (ToolUtil.isEmpty(dto.getIsPush())) {
+ dto.setIsPush(nodePush);
+ }
+ map.put("processJson", JSON.toJSONString(dto));
FlowableUtil.completeTask(dto.getTaskId(), dto.getRemarks(), map, operationType, dto.getCurrUser().getDeptId(), dto.getCurrUser().getUserId(), dto.getCurrUser().getRoleTip());
//流转后指派下级节点任务
diff --git a/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
new file mode 100644
index 0000000..e2d64f9
--- /dev/null
+++ b/casic-service-support/src/main/java/com/casic/missiles/modular/cwscase/dto/CasePushDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.cwscase.dto;
+
+import lombok.Data;
+
+/**
+ * @ClassName CasePushDTO
+ * @Description 城管消息推送DTO
+ * @Author lwh
+ * @Date 2021/5/14 17:54
+ * @Version 1.0
+ */
+@Data
+public class CasePushDTO {
+ private String id;
+}
diff --git a/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java b/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
index ecce0ef..aef18fb 100644
--- a/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
+++ b/casic-service-support/src/main/java/com/casic/missiles/modular/flowable/dto/ProcessDcmsDto.java
@@ -105,7 +105,10 @@
private String areaCode;
private String fieldintro;
private Long gridId;
-
+ /**
+ * 是否需要推送消息
+ */
+ private String isPush;
/**
* 【五包】-处罚类型
*/
diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml
index 1aee4e3..c6b5de4 100644
--- a/casic-web/src/main/resources/config/application.yml
+++ b/casic-web/src/main/resources/config/application.yml
@@ -30,4 +30,10 @@
export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\
config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\
office:
- maxRowsExcel: 65536
\ No newline at end of file
+ maxRowsExcel: 65536
+ push:
+ app-id: DR9oeLL9va6aG3DYXy2w39 #城管APPid
+ app-key: f0CGagZEq5AKVedGMUkGB7 #app key
+ master-secret: trtDQd7cJuAAsMnOkwY2cA
+ host: http://sdk.open.api.igexin.com/apiex.htm #推送服务地址
+ title: 您收到一个新案卷"%s",请尽快处理
\ No newline at end of file