add: 联调
This commit is contained in:
@@ -70,14 +70,12 @@ public class FlwInstanceController {
|
|||||||
/**
|
/**
|
||||||
* 审批通过
|
* 审批通过
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/completeFlow/{id}")
|
@PostMapping("/completeFlow")
|
||||||
public R completeFlow(@PathVariable("id") String id){
|
public R completeFlow(@RequestBody Map<String, Object> params){
|
||||||
if(StringUtils.isBlank(id)){
|
|
||||||
return R.error("流程TaskId不能为空");
|
|
||||||
}
|
|
||||||
instanceService.completeTaskById(id);
|
|
||||||
|
|
||||||
return R.ok("操作成功");
|
R r = instanceService.completeTaskById(params);
|
||||||
|
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/claimTask/{id}")
|
@RequestMapping("/claimTask/{id}")
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.boge.modules.flow.service;
|
|||||||
import com.boge.common.utils.R;
|
import com.boge.common.utils.R;
|
||||||
import com.boge.modules.flow.entity.FlwHiTaskEntity;
|
import com.boge.modules.flow.entity.FlwHiTaskEntity;
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -12,7 +11,7 @@ public interface FlwInstanceService {
|
|||||||
|
|
||||||
R getTodoTaskList(Map<String, Object> params);
|
R getTodoTaskList(Map<String, Object> params);
|
||||||
|
|
||||||
void completeTaskById(String id);
|
R completeTaskById(Map<String, Object> id);
|
||||||
|
|
||||||
void unclaimTask(String id);
|
void unclaimTask(String id);
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ import com.boge.modules.sys.entity.SysUserEntity;
|
|||||||
import com.boge.modules.sys.service.SysRoleService;
|
import com.boge.modules.sys.service.SysRoleService;
|
||||||
import com.boge.modules.sys.service.SysUserService;
|
import com.boge.modules.sys.service.SysUserService;
|
||||||
import com.boge.modules.sys.service.impl.SysUserServiceImpl;
|
import com.boge.modules.sys.service.impl.SysUserServiceImpl;
|
||||||
|
import com.boge.modules.tickets.entity.TicketsEntity;
|
||||||
|
import com.boge.modules.tickets.enums.TicketsStatusEnums;
|
||||||
|
import com.boge.modules.tickets.service.TicketsService;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.bpmn.model.FlowElement;
|
import org.flowable.bpmn.model.FlowElement;
|
||||||
import org.flowable.bpmn.model.Process;
|
import org.flowable.bpmn.model.Process;
|
||||||
@@ -35,6 +38,7 @@ import org.flowable.task.api.Task;
|
|||||||
import org.flowable.task.api.TaskQuery;
|
import org.flowable.task.api.TaskQuery;
|
||||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -59,6 +63,12 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysUserServiceImpl sysUserService;
|
private SysUserServiceImpl sysUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TicketsService ticketsService;
|
||||||
|
|
||||||
|
@Value("${ProcessInstance.defId}")
|
||||||
|
private String defId;
|
||||||
|
|
||||||
//发送消息的类型
|
//发送消息的类型
|
||||||
private final static String MSGTYPE = "text";
|
private final static String MSGTYPE = "text";
|
||||||
//将消息发送给所有成员
|
//将消息发送给所有成员
|
||||||
@@ -78,7 +88,8 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
public void startFlowInstance(Map<String, Object> params) {
|
public void startFlowInstance(Map<String, Object> params) {
|
||||||
SysUserEntity loginUser = ShiroUtils.getUserEntity();
|
SysUserEntity loginUser = ShiroUtils.getUserEntity();
|
||||||
// 获取需要发起的流程信息
|
// 获取需要发起的流程信息
|
||||||
String defId = (String) params.get("id");
|
String ticketsId = (String) params.get("ticketsId");
|
||||||
|
|
||||||
Map<String, Object> variable = new HashMap<>();
|
Map<String, Object> variable = new HashMap<>();
|
||||||
// 结合传递过来的数据动态的绑定流程变量
|
// 结合传递过来的数据动态的绑定流程变量
|
||||||
Set<String> keys = params.keySet();
|
Set<String> keys = params.keySet();
|
||||||
@@ -87,14 +98,21 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
// 记录流程的发起人
|
// 记录流程的发起人
|
||||||
identityService.setAuthenticatedUserId(ShiroUtils.getUserId().toString());
|
identityService.setAuthenticatedUserId(ShiroUtils.getUserId().toString());
|
||||||
// 启动流程
|
// 启动流程
|
||||||
runtimeService.startProcessInstanceById(defId, variable);
|
ProcessInstance processInstance = runtimeService.startProcessInstanceById(defId, variable);
|
||||||
SysUserEntity user = sysUserService.getById(Long.valueOf((String) params.get("user1")));
|
SysUserEntity user = sysUserService.getById(Long.valueOf((String) params.get("user1")));
|
||||||
|
//更新工单审批id
|
||||||
|
TicketsEntity ticketsEntity = new TicketsEntity();
|
||||||
|
ticketsEntity.setTicketsId(Long.valueOf(ticketsId));
|
||||||
|
ticketsEntity.setStatus(TicketsStatusEnums.CHECKED.getCode());
|
||||||
|
ticketsEntity.setProcessInstance(processInstance.getProcessInstanceId());
|
||||||
|
ticketsService.updateById(ticketsEntity);
|
||||||
|
|
||||||
if (StrUtil.isEmpty(user.getWexinId())){
|
if (StrUtil.isEmpty(user.getWexinId())){
|
||||||
throw new RRException("企业id为空,企业微信消息无法推送");
|
throw new RRException("企业id为空,企业微信消息无法推送");
|
||||||
}
|
}
|
||||||
|
|
||||||
String accessToken = getAccessToken();
|
String accessToken = getAccessToken();
|
||||||
sendWeChatMessage(user.getWexinId(),"工单已推送,请登入售后管理系统处理",accessToken);
|
sendWeChatMessage(user.getWexinId(),"工单已推送,请登入售后管理系统处理",accessToken,ticketsId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +161,7 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void sendWeChatMessage(String toUser, String content, String ACCESS_TOKEN) {
|
public static void sendWeChatMessage(String toUser, String content, String ACCESS_TOKEN, String ticketsId) {
|
||||||
//请求串
|
//请求串
|
||||||
String url = CREATE_SESSION_URL + ACCESS_TOKEN;
|
String url = CREATE_SESSION_URL + ACCESS_TOKEN;
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
@@ -151,9 +169,9 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
jsonObject.put("msgtype", "textcard");
|
jsonObject.put("msgtype", "textcard");
|
||||||
jsonObject.put("agentid", 1000006);
|
jsonObject.put("agentid", 1000006);
|
||||||
JSONObject contentJSon = new JSONObject();
|
JSONObject contentJSon = new JSONObject();
|
||||||
contentJSon.put("title", "新审批待处理");
|
contentJSon.put("title", "[协同提醒] - 工单审批待处理");
|
||||||
contentJSon.put("description", "点击查看详情");
|
contentJSon.put("description", "点击查看详情");
|
||||||
contentJSon.put("url", "http://localhost:8001/#/tickets-tickets");
|
contentJSon.put("url", "http://localhost:8001/#/tickets-detail?id="+ticketsId);
|
||||||
contentJSon.put("btntxt", "处理");
|
contentJSon.put("btntxt", "处理");
|
||||||
|
|
||||||
jsonObject.put("textcard", contentJSon);
|
jsonObject.put("textcard", contentJSon);
|
||||||
@@ -309,9 +327,24 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void completeTaskById(String id) {
|
public R completeTaskById(Map<String, Object> params) {
|
||||||
|
String processInstance = (String) params.get("process_instance");
|
||||||
|
String ticketsId = (String) params.get("ticketsId");
|
||||||
|
if(StringUtils.isBlank(processInstance)){
|
||||||
|
return R.error("流程Id不能为空");
|
||||||
|
}
|
||||||
|
TaskQuery taskQuery = taskService.createTaskQuery().active().processInstanceId(processInstance);
|
||||||
|
List<Task> tasks = taskQuery.list();
|
||||||
|
if (!tasks.isEmpty()){
|
||||||
|
taskService.complete(tasks.get(0).getId());
|
||||||
|
}
|
||||||
|
//更新工单审批id
|
||||||
|
TicketsEntity ticketsEntity = new TicketsEntity();
|
||||||
|
ticketsEntity.setTicketsId(Long.valueOf(ticketsId));
|
||||||
|
ticketsEntity.setStatus(TicketsStatusEnums.CANCEL.getCode());
|
||||||
|
ticketsService.updateById(ticketsEntity);
|
||||||
|
|
||||||
taskService.complete(id);
|
return R.ok("操作成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -31,11 +31,11 @@ public class TicketsEntity implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 异常类型
|
* 异常类型
|
||||||
*/
|
*/
|
||||||
private Integer errorType;
|
private String errorType;
|
||||||
/**
|
/**
|
||||||
* 合同编号
|
* 合同编号
|
||||||
*/
|
*/
|
||||||
private String contractNumber;
|
private String contractId;
|
||||||
/**
|
/**
|
||||||
* 客户id
|
* 客户id
|
||||||
*/
|
*/
|
||||||
@@ -73,6 +73,11 @@ public class TicketsEntity implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批流id
|
||||||
|
*/
|
||||||
|
private String processInstance;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.boge.modules.tickets.enums;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum TicketsStatusEnums {
|
||||||
|
|
||||||
|
UNCHECK(0, "未开始"),
|
||||||
|
CHECKED(1, "已指派"),
|
||||||
|
REJECT(2, "处理中"),
|
||||||
|
CANCEL(3, "已完成");
|
||||||
|
|
||||||
|
private Integer code;
|
||||||
|
private String msg;
|
||||||
|
|
||||||
|
public static String getStatus(String code) {
|
||||||
|
for (TicketsStatusEnums value : values()) {
|
||||||
|
if (value.code.equals(code)) {
|
||||||
|
return value.msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -84,3 +84,6 @@ file:
|
|||||||
maxSize: 100
|
maxSize: 100
|
||||||
avatarMaxSize: 5
|
avatarMaxSize: 5
|
||||||
|
|
||||||
|
ProcessInstance:
|
||||||
|
defId: Process_1:2:05cb9af4-03a2-11f0-8846-e40d36456f42
|
||||||
|
|
||||||
|
|||||||
6
base-vue/package-lock.json
generated
6
base-vue/package-lock.json
generated
@@ -4429,9 +4429,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"element-ui": {
|
"element-ui": {
|
||||||
"version": "2.8.2",
|
"version": "2.15.14",
|
||||||
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.8.2.tgz",
|
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
|
||||||
"integrity": "sha512-LABKHKGUyewFNvpf9BQLecB659Wq0XYvyP1tBveZ4RWpdlPSylDfGW/RLvDYU7zuCBoRasdZAz7ryjOwq1lLNg==",
|
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"async-validator": "~1.8.1",
|
"async-validator": "~1.8.1",
|
||||||
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user