Browse Source

add: 联调

master
ls 1 week 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}")
public R completeFlow(@PathVariable("id") String id){
if(StringUtils.isBlank(id)){
return R.error("流程TaskId不能为空");
}
instanceService.completeTaskById(id);
@PostMapping("/completeFlow")
public R completeFlow(@RequestBody Map<String, Object> params){
return R.ok("操作成功");
R r = instanceService.completeTaskById(params);
return r;
}
@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.modules.flow.entity.FlwHiTaskEntity;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
@ -12,7 +11,7 @@ public interface FlwInstanceService {
R getTodoTaskList(Map<String, Object> params);
void completeTaskById(String id);
R completeTaskById(Map<String, Object> 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.SysUserService;
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.FlowElement;
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.history.HistoricTaskInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
@ -59,6 +63,12 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
@Autowired
private SysUserServiceImpl sysUserService;
@Autowired
private TicketsService ticketsService;
@Value("${ProcessInstance.defId}")
private String defId;
//发送消息的类型
private final static String MSGTYPE = "text";
//将消息发送给所有成员
@ -78,7 +88,8 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
public void startFlowInstance(Map<String, Object> params) {
SysUserEntity loginUser = ShiroUtils.getUserEntity();
// 获取需要发起的流程信息
String defId = (String) params.get("id");
String ticketsId = (String) params.get("ticketsId");
Map<String, Object> variable = new HashMap<>();
// 结合传递过来的数据动态的绑定流程变量
Set<String> keys = params.keySet();
@ -87,14 +98,21 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
// 记录流程的发起人
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")));
//更新工单审批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())){
throw new RRException("企业id为空,企业微信消息无法推送");
}
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;
JSONObject jsonObject = new JSONObject();
@ -151,9 +169,9 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
jsonObject.put("msgtype", "textcard");
jsonObject.put("agentid", 1000006);
JSONObject contentJSon = new JSONObject();
contentJSon.put("title", "审批待处理");
contentJSon.put("title", "[协同提醒] - 工单审批待处理");
contentJSon.put("description", "点击查看详情");
contentJSon.put("url", "http://localhost:8001/#/tickets-tickets");
contentJSon.put("url", "http://localhost:8001/#/tickets-detail?id="+ticketsId);
contentJSon.put("btntxt", "处理");
jsonObject.put("textcard", contentJSon);
@ -309,9 +327,24 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI
}
@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

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
*/
@ -73,6 +73,11 @@ public class TicketsEntity implements Serializable {
*/
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
avatarMaxSize: 5
ProcessInstance:
defId: Process_1:2:05cb9af4-03a2-11f0-8846-e40d36456f42

6
base-vue/package-lock.json

@ -4429,9 +4429,9 @@
"dev": true
},
"element-ui": {
"version": "2.8.2",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.8.2.tgz",
"integrity": "sha512-LABKHKGUyewFNvpf9BQLecB659Wq0XYvyP1tBveZ4RWpdlPSylDfGW/RLvDYU7zuCBoRasdZAz7ryjOwq1lLNg==",
"version": "2.15.14",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",

Loading…
Cancel
Save