Browse Source

add: 联调

master
ls 2 weeks ago
parent
commit
be3dfd8586
  1. 12
      base-fast/src/main/java/com/boge/modules/flow/controller/FlwInstanceController.java
  2. 3
      base-fast/src/main/java/com/boge/modules/flow/service/FlwInstanceService.java
  3. 49
      base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java
  4. 0
      base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java
  5. 9
      base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java
  6. 26
      base-fast/src/main/java/com/boge/modules/tickets/enums/TicketsStatusEnums.java
  7. 3
      base-fast/src/main/resources/application.yml
  8. 6
      base-vue/package-lock.json

12
base-fast/src/main/java/com/boge/modules/flow/controller/FlwInstanceController.java

@ -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
base-fast/src/main/java/com/boge/modules/flow/service/FlwInstanceService.java

@ -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);

49
base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java

@ -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

0
base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java

9
base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java

@ -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;
} }

26
base-fast/src/main/java/com/boge/modules/tickets/enums/TicketsStatusEnums.java

@ -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;
}
}

3
base-fast/src/main/resources/application.yml

@ -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

@ -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",

Loading…
Cancel
Save