update hiwork消息新增flowid
This commit is contained in:
+1
-1
@@ -19,5 +19,5 @@ public interface PushWorkflowIntegrationAPI {
|
|||||||
**/
|
**/
|
||||||
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
|
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
|
||||||
|
|
||||||
void sendActivityComplete(String processInstanceId);
|
void sendActivityComplete(List<HiworkTodoAdd> processInstanceId);
|
||||||
}
|
}
|
||||||
|
|||||||
+86
-122
@@ -91,7 +91,7 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList);
|
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList,false);
|
||||||
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
|
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
|
||||||
// 远程调用
|
// 远程调用
|
||||||
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
|
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
|
||||||
@@ -106,13 +106,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendActivityComplete(String processInstanceId) {
|
public void sendActivityComplete(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||||
if(!isWorkflow){
|
if(!isWorkflow){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
|
||||||
try {
|
try {
|
||||||
List<HiworkTodo> hiworkTodoList = getHiworkTodos(processAll);
|
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList, true);
|
||||||
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
|
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
|
||||||
// 远程调用
|
// 远程调用
|
||||||
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
|
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
|
||||||
@@ -125,45 +124,9 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
log.error("统一待办推送异常",e);
|
log.error("统一待办推送异常",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@NotNull
|
|
||||||
private List<HiworkTodo> getHiworkTodos(ProcessAll processAll) {
|
|
||||||
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
|
|
||||||
HiworkTodo hiworkTodo = new HiworkTodo();
|
|
||||||
hiworkTodo.setSysCode(hiworkSysCode);
|
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
String date = DateUtil.formatDateTime(new Date());
|
|
||||||
String noticeTitle = processAll.getPrcName() + "(" + loginUser.getRealname() + " " + date + ")";
|
|
||||||
hiworkTodo.setNoticeTitle(noticeTitle);
|
|
||||||
hiworkTodo.setFlowid(processAll.getProcessInstanceId());
|
|
||||||
hiworkTodo.setProcessId(processAll.getProcessInstanceId());
|
|
||||||
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
|
|
||||||
hiworkTodo.setProcessType(PROCESS_TYPE);
|
|
||||||
|
|
||||||
// 是否显示(0否,1是)
|
|
||||||
hiworkTodo.setIsShow("1");
|
|
||||||
|
|
||||||
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
|
|
||||||
if(!Objects.isNull(sysUser)){
|
|
||||||
hiworkTodo.setCreateUserCode(sysUser.getUsername());
|
|
||||||
hiworkTodo.setCreateUserName(sysUser.getRealname());
|
|
||||||
}
|
|
||||||
if(!Objects.isNull(processAll.getDueTime())){
|
|
||||||
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
|
|
||||||
}
|
|
||||||
hiworkTodo.setBid(processAll.getProjectId());
|
|
||||||
if(!Objects.isNull(sysUser)){
|
|
||||||
hiworkTodo.setUserId(sysUser.getId());
|
|
||||||
hiworkTodo.setUserCode(sysUser.getUsername());
|
|
||||||
hiworkTodo.setUserName(sysUser.getRealname());
|
|
||||||
}
|
|
||||||
hiworkTodo.setReceiveTime(Instant.now());
|
|
||||||
hiworkTodo.setIsTodo(String.valueOf(3));
|
|
||||||
hiworkTodoList.add(hiworkTodo);
|
|
||||||
return hiworkTodoList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
|
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList, boolean b) {
|
||||||
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
|
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
|
||||||
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
|
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
|
||||||
String recordId = hiworkTodoAdd.getRecordId();
|
String recordId = hiworkTodoAdd.getRecordId();
|
||||||
@@ -172,89 +135,90 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
if(Objects.isNull(processApprovalRecord)){
|
if(Objects.isNull(processApprovalRecord)){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
getObj(hiworkTodoList, processDefinitionId, processApprovalRecord);
|
HiworkTodo hiworkTodo = new HiworkTodo();
|
||||||
|
hiworkTodo.setSysCode(hiworkSysCode);
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
String date = DateUtil.formatDateTime(new Date());
|
||||||
|
String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getRealname() + " " + date + ")";
|
||||||
|
hiworkTodo.setNoticeTitle(noticeTitle);
|
||||||
|
hiworkTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
|
||||||
|
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
|
||||||
|
hiworkTodo.setProcessType(PROCESS_TYPE);
|
||||||
|
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
|
||||||
|
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
|
||||||
|
|
||||||
|
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
||||||
|
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
|
||||||
|
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
|
||||||
|
ProcessNode processNode = processNodeService.getOne(wrapper,false);
|
||||||
|
if(!Objects.isNull(processNode)){
|
||||||
|
if(processNode.getNodeName().contains("会签")){
|
||||||
|
|
||||||
|
}
|
||||||
|
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
|
||||||
|
// 是否显示(0否,1是)
|
||||||
|
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
||||||
|
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||||
|
ProcessAll processAll = processAllService.getOne(queryProcessAll);
|
||||||
|
if(!Objects.isNull(processAll)){
|
||||||
|
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
|
||||||
|
|
||||||
|
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
|
||||||
|
if(!Objects.isNull(sysUser)){
|
||||||
|
hiworkTodo.setCreateUserCode(sysUser.getUsername());
|
||||||
|
hiworkTodo.setCreateUserName(sysUser.getRealname());
|
||||||
|
}
|
||||||
|
if(!Objects.isNull(processAll.getDueTime())){
|
||||||
|
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
|
||||||
|
}
|
||||||
|
hiworkTodo.setBid(processAll.getProjectId());
|
||||||
|
String url = hiworkFontUrl
|
||||||
|
//.replaceAll("&","%26")
|
||||||
|
//.replaceAll("\\?","%3F")
|
||||||
|
.replace("{projectId}",processAll.getProjectId())
|
||||||
|
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||||
|
.replace("{taskId}",processApprovalRecord.getTaskId())
|
||||||
|
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||||
|
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||||
|
// 跳转链接
|
||||||
|
String businessLink = url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
||||||
|
hiworkTodo.setBusinessLink(businessLink);
|
||||||
|
// APP跳转链接
|
||||||
|
String appUrl = hiworkFontAppUrl
|
||||||
|
//.replaceAll("&","%26")
|
||||||
|
//.replaceAll("\\?","%3F")
|
||||||
|
.replace("{projectId}",processAll.getProjectId())
|
||||||
|
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||||
|
.replace("{taskId}",processApprovalRecord.getTaskId())
|
||||||
|
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||||
|
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||||
|
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
||||||
|
hiworkTodo.setAppBusinessLink(appBusinessLink);
|
||||||
|
}
|
||||||
|
SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId());
|
||||||
|
if(!Objects.isNull(sysUser)){
|
||||||
|
hiworkTodo.setUserId(processApprovalRecord.getUserId());
|
||||||
|
hiworkTodo.setUserCode(sysUser.getUsername());
|
||||||
|
hiworkTodo.setUserName(sysUser.getRealname());
|
||||||
|
}
|
||||||
|
hiworkTodo.setReceiveTime(Instant.now());
|
||||||
|
//2已完成时进入下一节点
|
||||||
|
Integer finishFlag = processApprovalRecord.getFinishFlag();
|
||||||
|
if (finishFlag.equals(2)){
|
||||||
|
hiworkTodo.setMultiInstance(0);
|
||||||
|
}
|
||||||
|
if (b){
|
||||||
|
hiworkTodo.setIsTodo(String.valueOf(3));
|
||||||
|
}else {
|
||||||
|
hiworkTodo.setIsTodo(String.valueOf(finishFlag));
|
||||||
|
}
|
||||||
|
hiworkTodoList.add(hiworkTodo);
|
||||||
}
|
}
|
||||||
return hiworkTodoList;
|
return hiworkTodoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getObj(List<HiworkTodo> hiworkTodoList, String processDefinitionId, ProcessApprovalRecord processApprovalRecord) {
|
|
||||||
HiworkTodo hiworkTodo = new HiworkTodo();
|
|
||||||
hiworkTodo.setSysCode(hiworkSysCode);
|
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
String date = DateUtil.formatDateTime(new Date());
|
|
||||||
String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getRealname() + " " + date + ")";
|
|
||||||
hiworkTodo.setNoticeTitle(noticeTitle);
|
|
||||||
hiworkTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
|
|
||||||
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
|
|
||||||
hiworkTodo.setProcessType(PROCESS_TYPE);
|
|
||||||
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
|
|
||||||
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
|
|
||||||
|
|
||||||
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
|
||||||
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
|
|
||||||
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
|
|
||||||
ProcessNode processNode = processNodeService.getOne(wrapper,false);
|
|
||||||
if(!Objects.isNull(processNode)){
|
|
||||||
if(processNode.getNodeName().contains("会签")){
|
|
||||||
|
|
||||||
}
|
|
||||||
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
|
|
||||||
// 是否显示(0否,1是)
|
|
||||||
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
|
|
||||||
}
|
|
||||||
|
|
||||||
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
|
||||||
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
|
||||||
ProcessAll processAll = processAllService.getOne(queryProcessAll);
|
|
||||||
if(!Objects.isNull(processAll)){
|
|
||||||
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
|
|
||||||
|
|
||||||
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
|
|
||||||
if(!Objects.isNull(sysUser)){
|
|
||||||
hiworkTodo.setCreateUserCode(sysUser.getUsername());
|
|
||||||
hiworkTodo.setCreateUserName(sysUser.getRealname());
|
|
||||||
}
|
|
||||||
if(!Objects.isNull(processAll.getDueTime())){
|
|
||||||
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
|
|
||||||
}
|
|
||||||
hiworkTodo.setBid(processAll.getProjectId());
|
|
||||||
String url = hiworkFontUrl
|
|
||||||
//.replaceAll("&","%26")
|
|
||||||
//.replaceAll("\\?","%3F")
|
|
||||||
.replace("{projectId}",processAll.getProjectId())
|
|
||||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
|
||||||
.replace("{taskId}",processApprovalRecord.getTaskId())
|
|
||||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
|
||||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
|
||||||
// 跳转链接
|
|
||||||
String businessLink = url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
|
||||||
hiworkTodo.setBusinessLink(businessLink);
|
|
||||||
// APP跳转链接
|
|
||||||
String appUrl = hiworkFontAppUrl
|
|
||||||
//.replaceAll("&","%26")
|
|
||||||
//.replaceAll("\\?","%3F")
|
|
||||||
.replace("{projectId}",processAll.getProjectId())
|
|
||||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
|
||||||
.replace("{taskId}",processApprovalRecord.getTaskId())
|
|
||||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
|
||||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
|
||||||
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
|
||||||
hiworkTodo.setAppBusinessLink(appBusinessLink);
|
|
||||||
}
|
|
||||||
SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId());
|
|
||||||
if(!Objects.isNull(sysUser)){
|
|
||||||
hiworkTodo.setUserId(processApprovalRecord.getUserId());
|
|
||||||
hiworkTodo.setUserCode(sysUser.getUsername());
|
|
||||||
hiworkTodo.setUserName(sysUser.getRealname());
|
|
||||||
}
|
|
||||||
hiworkTodo.setReceiveTime(Instant.now());
|
|
||||||
//2已完成时进入下一节点
|
|
||||||
Integer finishFlag = processApprovalRecord.getFinishFlag();
|
|
||||||
if (finishFlag.equals(2)){
|
|
||||||
hiworkTodo.setMultiInstance(0);
|
|
||||||
}
|
|
||||||
hiworkTodo.setIsTodo(String.valueOf(finishFlag));
|
|
||||||
hiworkTodoList.add(hiworkTodo);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -263,6 +263,9 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
||||||
list.add(hiworkTodoAdd);
|
list.add(hiworkTodoAdd);
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
|
|
||||||
|
// 对接统一平台生成办结
|
||||||
|
pushWorkflowIntegrationAPI.sendActivityComplete(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void activityComplete(ActivitiEvent event) {
|
private void activityComplete(ActivitiEvent event) {
|
||||||
@@ -290,9 +293,6 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
log.info("taskEntity.getActivityName() = " + execution.getActivityName());
|
log.info("taskEntity.getActivityName() = " + execution.getActivityName());
|
||||||
log.info("taskEntity.getDeploymentId() = " + execution.getDeploymentId());
|
log.info("taskEntity.getDeploymentId() = " + execution.getDeploymentId());
|
||||||
log.info("taskEntity.getProcessDefinitionId() = " + execution.getProcessDefinitionId());
|
log.info("taskEntity.getProcessDefinitionId() = " + execution.getProcessDefinitionId());
|
||||||
// 对接统一平台生成办结
|
|
||||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
|
||||||
pushWorkflowIntegrationAPI.sendActivityComplete(processInstanceId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isFirstNodeTask(ProcessApprovalRecord record) {
|
private boolean isFirstNodeTask(ProcessApprovalRecord record) {
|
||||||
|
|||||||
Reference in New Issue
Block a user