Commit d8026ea9 by chenweisong

更新

parent 3cf5519e
......@@ -174,7 +174,7 @@
</dependencies>
</dependencyManagement>
<build>
<finalName>record-demo</finalName>
<finalName>admin</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
......
......@@ -24,7 +24,6 @@ import org.springframework.web.bind.annotation.*;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
@Api(description = "活动 控制器")
@RestController
......@@ -91,59 +90,42 @@ public class TaskController {
@ApiOperation(value = "我的任务", notes = "补录任务列表及审核任务列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户id", paramType = "query", required = true, dataType = "long")
@ApiImplicitParam(name = "userId", value = "用户id", paramType = "query", required = false, dataType = "long")
})
@PostMapping(value = "/getMyMissions")
public ApiResponse getMyMissions(long userId) {
User user = userService.findById(userId);
TwinkleValidator.notNull(user, "用户不存在");
List<Activity> activityList = new ArrayList<>();
// 获取任务
// List<Task> tasks = taskService.createNativeTaskQuery()
// .sql("SELECT * FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee1} OR T.ASSIGNEE_ = #{assignee2}")
// .parameter("assignee1", user.getUsername()).parameter("assignee2", audit.getUsername())
// .list();
// for (Task task : tasks) {
// String processId = task.getProcessInstanceId();
// Activity activity = assignmentService.findByProcessId(processId);
// if (assignment != null && assignment.getStatus() != Assignment.STATUS_COMPLETED) {
// if (task.getTaskDefinitionKey().equals("addData")) {
// assignment.setKind(Assignment.KIND_RECORD);
// } else {
// assignment.setKind(Assignment.KIND_AUDIT);
// }
// activityList.add(activity);
// }
// }
return ApiResponse.ok();
}
@ApiOperation(value = "我的任务", notes = "补录任务列表及审核任务列表")
@PostMapping(value = "/getMyTasks")
public ApiResponse getMyTasks() {
List<Activity> activityList = new ArrayList<>();
public ApiResponse getMyMissions(Long userId) {
// User user = userService.findById(userId);
// TwinkleValidator.notNull(user, "用户不存在");
List<Map> missions = new ArrayList<>();
List<User> userList = userService.findAll();
StringBuilder assigneesBuilder = new StringBuilder();
assigneesBuilder.append("(");
userList.forEach(user -> {
assigneesBuilder.append("'" + user.getUsername() + "'").append(",");
});
String assignees = assigneesBuilder.substring(0, assigneesBuilder.length() - 1) + ")";
// 获取任务
// List<Task> tasks = taskService.createNativeTaskQuery()
// .sql("SELECT * FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee1} OR T.ASSIGNEE_ = #{assignee2}")
// .parameter("assignee1", user.getUsername()).parameter("assignee2", audit.getUsername())
// .list();
// for (Task task : tasks) {
// String processId = task.getProcessInstanceId();
// Activity activity = assignmentService.findByProcessId(processId);
// if (assignment != null && assignment.getStatus() != Assignment.STATUS_COMPLETED) {
// if (task.getTaskDefinitionKey().equals("addData")) {
// assignment.setKind(Assignment.KIND_RECORD);
// } else {
// assignment.setKind(Assignment.KIND_AUDIT);
// }
// activityList.add(activity);
// }
// }
String sql = "SELECT * FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ in " + assignees;
List<Task> tasks = taskService.createNativeTaskQuery()
.sql(sql)
.list();
for (Task task : tasks) {
String processId = task.getProcessInstanceId();
List<Process> processList = processService.findAllByProcessId(processId);
// Process process = processService.findByProcessIdAndStatus(processId, Process.STATUS_RECORDING);
if (processList.size() != 0) {
Map mission = new HashMap();
mission.put("1", 1);
if (task.getTaskDefinitionKey().equals("addData")) {
} else {
}
missions.add(mission);
}
}
return ApiResponse.ok();
}
......@@ -153,6 +135,7 @@ public class TaskController {
public ApiResponse createTask(@RequestBody TaskForm form) {
TwinkleValidator.notEmpty(form.getName(), "名称不能为空");
TwinkleValidator.notNull(form.getType(), "类型不能为空");
TwinkleValidator.isTrue(form.getExcels() != null && form.getExcels().size() != 0, "补录模板不能为空");
// 创建人 为 manager
User admin = getAdmin();
......@@ -167,6 +150,7 @@ public class TaskController {
// 新建excel实例
List<ExcelForm> excelFormList = form.getExcels();
excelFormList.forEach(excelForm -> {
TwinkleValidator.isNotNULL(excelForm.getScopeId(), "模板scopeId不能为空");
RecordScope scope = recordScopeService.findById(excelForm.getScopeId());
TwinkleValidator.isNotNULL(scope, "补录范围不能为空");
TwinkleValidator.isFalse((StringUtils.isEmpty(excelForm.getUpStreamAddr()) && StringUtils.isNotEmpty(excelForm.getBackStreamAddr())
......@@ -178,7 +162,7 @@ public class TaskController {
// 查找当前补录范围所有的用户
List<User> userList = scope.getUserList();
TwinkleValidator.notLessThan(userList.size(), 1, "补录人员不存在");
TwinkleValidator.notLessThan(userList.size(), 1, "补录人员不存在,所选补录范围需要先绑定用户");
userList.forEach(user -> {
// 创建了一些空白任务
......
......@@ -36,7 +36,19 @@ public class UserController {
@ApiOperation(value = "获取补录人员列表")
@PostMapping(value = "/user/list")
public ApiResponse getUserList() {
List<User> userList = userService.findAll();
List<Map> userList = new ArrayList<>();
List<RecordScope> recordScopeList = recordScopeService.findAll();
recordScopeList.forEach(recordScope -> {
Map map = new HashMap();
map.put("id", recordScope.getId());
map.put("desc", recordScope.getDesc());
map.put("groupId", recordScope.getGroup().getId());
map.put("groupName", recordScope.getGroup().getId());
List<User> users = userService.findAllByGroupId(recordScope.getGroup().getId());
map.put("userList", users);
userList.add(map);
});
// List<User> userList = userService.findAll();
return ApiResponse.ok(userList);
}
......@@ -44,7 +56,22 @@ public class UserController {
@PostMapping(value = "/scope/list")
public ApiResponse getScopeList() {
List<RecordScope> recordScopeList = recordScopeService.findAll();
return ApiResponse.ok(recordScopeList);
List<Map> result = new ArrayList<>();
recordScopeList.forEach(recordScope -> {
Map map = new HashMap();
map.put("id", recordScope.getId());
map.put("desc", recordScope.getDesc());
map.put("groupId", recordScope.getGroup().getId());
map.put("groupName", recordScope.getGroup().getId());
List<User> users = recordScope.getUserList();
User user = null;
if (users.size() >= 1) {
user = users.get(0);
}
map.put("user", user);
result.add(map);
});
return ApiResponse.ok(result);
}
@ApiOperation(value = "补录范围绑定人员")
......@@ -59,10 +86,10 @@ public class UserController {
User user = userService.findById(userId);
TwinkleValidator.notNull(user, "所选用户不存在");
TwinkleValidator.isTrue(scope.getGroup().getId() == user.getGroup().getId(), "所选用户与所选范围不属于同一机构");
List<User> userList = scope.getUserList();
List<User> userList = new ArrayList<>();
userList.add(user);
scope.setUserList(userList);
recordScopeService.update(scope);
recordScopeService.save(scope);
return ApiResponse.ok();
}
......
......@@ -3,6 +3,11 @@ package com.keymobile.rest.dao;
import com.keymobile.rest.model.Process;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProcessDao extends JpaRepository<Process, Long> {
List<Process> findAllByProcessId(String processId);
Process findByProcessIdAndStatus(String processId, int status);
}
......@@ -3,7 +3,6 @@ package com.keymobile.rest.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSetter;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -25,10 +24,16 @@ public class RecordScope implements Serializable {
public static int ROLE_RECORD = 1;
public static int ROLE_AUDIT = 2;
public static String ROLE_RECORD_DESC = "补录人员";
public static String ROLE_AUDIT_DESC = "审核人员";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "`desc`", nullable = false, columnDefinition = ("varchar(100) comment '补录角色描述'"))
private String desc;
@Column(nullable = false, columnDefinition = ("integer(2) comment '补录角色'"))
private int role;
......@@ -37,11 +42,12 @@ public class RecordScope implements Serializable {
private Group group;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonIgnore
@JoinTable(name = "t_user_record_scope", // 用来指定中间表的名称
//用于指定本表在中间表的字段名称,以及中间表依赖的是本表的哪个字段
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
joinColumns = {@JoinColumn(name = "record_scope_id", referencedColumnName = "id")},
//用于指定对方表在中间表的字段名称,以及中间表依赖的是它的哪个字段
inverseJoinColumns = {@JoinColumn(name = "record_scope", referencedColumnName = "id")}
inverseJoinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")}
)
private List<User> userList;
}
......@@ -32,7 +32,7 @@ public class Template implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private Long id;
@Column(nullable = false, columnDefinition = ("varchar(20) comment '模板名称'"))
private String name;
......@@ -41,16 +41,16 @@ public class Template implements Serializable {
private String config;
@Column(name = "data_at", columnDefinition = ("integer(20) default 1 comment '数据开始行数'"))
private int dataAt;
private Integer dataAt;
@Column(name = "need_audit", columnDefinition = ("integer(2) default 0 comment '需要审核'"))
private int needAudit;
private Integer needAudit;
@Column(name = "need_confirm", columnDefinition = ("integer(2) default 0 comment '需要负责人确认'"))
private int needConfirm;
private Integer needConfirm;
@Column(name = "need_merge", columnDefinition = ("integer(2) default 0 comment '需要数据合并'"))
private int needMerge;
private Integer needMerge;
@Column(name = "up_stream_addr", columnDefinition = ("varchar(100) comment '上游地址'"))
private String upStreamAddr;
......
......@@ -7,7 +7,6 @@ import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"})
@NoArgsConstructor
......@@ -30,5 +29,6 @@ public class User implements Serializable {
* 所属结构id
*/
@ManyToOne(fetch = FetchType.EAGER)
@JsonIgnore
private Group group;
}
......@@ -31,10 +31,6 @@ public class ActivityService {
return activityDao.save(activity);
}
public Activity findByProcessId(String pid) {
return null;
}
public Page<Activity> findAll(int pageNo, int pageSize) {
Pageable pageable = convert(pageNo, pageSize);
return activityDao.findAll(pageable);
......
......@@ -5,6 +5,8 @@ import com.keymobile.rest.model.Process;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProcessService {
......@@ -16,4 +18,14 @@ public class ProcessService {
processDao.save(process);
return process;
}
public List<Process> findAllByProcessId(String processId) {
return processDao.findAllByProcessId(processId);
}
public Process findByProcessIdAndStatus(String processId, int status) {
return processDao.findByProcessIdAndStatus(processId, status);
}
}
......@@ -29,10 +29,12 @@ public class RecordScopeService {
RecordScope scope = new RecordScope();
scope.setGroup(group);
scope.setRole(RecordScope.ROLE_RECORD);
scope.setDesc(group.getName() + RecordScope.ROLE_RECORD_DESC);
recordScopeDao.save(scope);
scope = new RecordScope();
scope.setGroup(group);
scope.setRole(RecordScope.ROLE_AUDIT);
scope.setDesc(group.getName() + RecordScope.ROLE_AUDIT_DESC);
recordScopeDao.save(scope);
}
});
......@@ -46,7 +48,7 @@ public class RecordScopeService {
return recordScopeDao.findAll();
}
public void update(RecordScope recordScope) {
public void save(RecordScope recordScope) {
recordScopeDao.save(recordScope);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="moreSubProcess" name="moreSubProcess" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<userTask id="startEntry" name="开始录入" activiti:assignee="${inputUser}"></userTask>
<userTask id="headApply" name="负责人审核" activiti:candidateUsers="${groupDataStandardServiceImpl.findAssigneesForProcess(execution,&quot;group5&quot;)}"></userTask>
<exclusiveGateway id="exclusivegateway2" name="Exclusive Gateway"></exclusiveGateway>
<endEvent id="endevent2" name="End"></endEvent>
<userTask id="dataBackFlow" name="数据回流" activiti:candidateUsers="${groupDataStandardServiceImpl.findAssigneesForProcess(execution,&quot;group4&quot;)}"></userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="startEntry"></sequenceFlow>
<sequenceFlow id="flow11" sourceRef="headApply" targetRef="exclusivegateway2"></sequenceFlow>
<sequenceFlow id="flow12" name="N" sourceRef="exclusivegateway2" targetRef="endevent2" skipExpression="${sign=='false'}"></sequenceFlow>
<sequenceFlow id="flow13" name="Y" sourceRef="exclusivegateway2" targetRef="dataBackFlow" skipExpression="${sign=='true'}"></sequenceFlow>
<sequenceFlow id="flow14" sourceRef="dataBackFlow" targetRef="endevent2"></sequenceFlow>
<subProcess id="entrySubprocess" name="录入子流程">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="candiateUserList" activiti:elementVariable="candiateUser">
<completionCondition>${nrOfCompletedInstances/nrOfInstances &gt;= 1}</completionCondition>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1585034942112" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="moreSubProcess" isClosed="false" isExecutable="true" name="moreSubProcess" processType="None">
<startEvent id="startevent1" name="Start"/>
<userTask activiti:assignee="${inputUser}" activiti:exclusive="true" id="startEntry" name="开始录入"/>
<userTask activiti:candidateUsers="${groupDataStandardServiceImpl.findAssigneesForProcess(execution,&quot;group5&quot;)}" activiti:exclusive="true" id="headApply" name="负责人审核"/>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway2" name="Exclusive Gateway"/>
<endEvent id="endevent2" name="End"/>
<userTask activiti:candidateUsers="${groupDataStandardServiceImpl.findAssigneesForProcess(execution,&quot;group4&quot;)}" activiti:exclusive="true" id="dataBackFlow" name="数据回流"/>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="startEntry"/>
<sequenceFlow id="flow11" sourceRef="headApply" targetRef="exclusivegateway2"/>
<sequenceFlow id="flow12" name="N" skipExpression="${sign=='false'}" sourceRef="exclusivegateway2" targetRef="endevent2"/>
<sequenceFlow id="flow13" name="Y" skipExpression="${sign=='true'}" sourceRef="exclusivegateway2" targetRef="dataBackFlow"/>
<sequenceFlow id="flow14" sourceRef="dataBackFlow" targetRef="endevent2"/>
<subProcess activiti:exclusive="true" id="entrySubprocess" name="录入子流程" triggeredByEvent="false">
<multiInstanceLoopCharacteristics activiti:collection="candiateUserList" activiti:elementVariable="candiateUser" isSequential="false">
<completionCondition>
<![CDATA[${nrOfCompletedInstances/nrOfInstances >= 1}]]>
</completionCondition>
</multiInstanceLoopCharacteristics>
<startEvent id="startevent2" name="Start"></startEvent>
<userTask id="dataEntrySubTask" name="数据录入子任务" activiti:async="true" activiti:assignee="${candiateUser}"></userTask>
<userTask id="dataApply" name="数据审核人员" activiti:assignee="${inputDataApply}"></userTask>
<endEvent id="endevent3" name="End"></endEvent>
<exclusiveGateway id="exclusivegateway3" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow17" sourceRef="startevent2" targetRef="dataEntrySubTask"></sequenceFlow>
<sequenceFlow id="flow21" sourceRef="dataApply" targetRef="exclusivegateway3"></sequenceFlow>
<sequenceFlow id="flow22" name="N" sourceRef="exclusivegateway3" targetRef="dataEntrySubTask" skipExpression="${sign=='false'}"></sequenceFlow>
<sequenceFlow id="flow23" name="Y" sourceRef="exclusivegateway3" targetRef="endevent3" skipExpression="${sign=='true'}"></sequenceFlow>
<exclusiveGateway id="exclusivegateway4" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow24" sourceRef="dataEntrySubTask" targetRef="exclusivegateway4"></sequenceFlow>
<sequenceFlow id="flow25" name="Y" sourceRef="exclusivegateway4" targetRef="dataApply" skipExpression="${sign=='true'}"></sequenceFlow>
<sequenceFlow id="flow26" name="N" sourceRef="exclusivegateway4" targetRef="endevent3" skipExpression="${sign=='false'}"></sequenceFlow>
<startEvent id="startevent2" name="Start"/>
<userTask activiti:assignee="${candiateUser}" activiti:async="true" activiti:exclusive="true" id="dataEntrySubTask" name="数据录入子任务"/>
<userTask activiti:assignee="${inputDataApply}" activiti:exclusive="true" id="dataApply" name="数据审核人员"/>
<endEvent id="endevent3" name="End"/>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway3" name="Exclusive Gateway"/>
<sequenceFlow id="flow17" sourceRef="startevent2" targetRef="dataEntrySubTask"/>
<sequenceFlow id="flow21" sourceRef="dataApply" targetRef="exclusivegateway3"/>
<sequenceFlow id="flow22" name="N" skipExpression="${sign=='false'}" sourceRef="exclusivegateway3" targetRef="dataEntrySubTask"/>
<sequenceFlow id="flow23" name="Y" skipExpression="${sign=='true'}" sourceRef="exclusivegateway3" targetRef="endevent3"/>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway4" name="Exclusive Gateway"/>
<sequenceFlow id="flow24" sourceRef="dataEntrySubTask" targetRef="exclusivegateway4"/>
<sequenceFlow id="flow25" name="Y" skipExpression="${sign=='true'}" sourceRef="exclusivegateway4" targetRef="dataApply"/>
<sequenceFlow id="flow26" name="N" skipExpression="${sign=='false'}" sourceRef="exclusivegateway4" targetRef="endevent3"/>
</subProcess>
<sequenceFlow id="flow15" sourceRef="startEntry" targetRef="entrySubprocess"></sequenceFlow>
<exclusiveGateway id="exclusivegateway5" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow27" name="Y" sourceRef="exclusivegateway5" targetRef="headApply" skipExpression="${applySign=='true'}"></sequenceFlow>
<sequenceFlow id="flow28" sourceRef="entrySubprocess" targetRef="exclusivegateway5"></sequenceFlow>
<sequenceFlow id="flow29" name="N" sourceRef="exclusivegateway5" targetRef="dataBackFlow" skipExpression="${applySign=='false'}"></sequenceFlow>
<sequenceFlow id="flow15" sourceRef="startEntry" targetRef="entrySubprocess"/>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway5" name="Exclusive Gateway"/>
<sequenceFlow id="flow27" name="Y" skipExpression="${applySign=='true'}" sourceRef="exclusivegateway5" targetRef="headApply"/>
<sequenceFlow id="flow28" sourceRef="entrySubprocess" targetRef="exclusivegateway5"/>
<sequenceFlow id="flow29" name="N" skipExpression="${applySign=='false'}" sourceRef="exclusivegateway5" targetRef="dataBackFlow"/>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_moreSubProcess">
<bpmndi:BPMNPlane bpmnElement="moreSubProcess" id="BPMNPlane_moreSubProcess">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="10.0" y="170.0"></omgdc:Bounds>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="moreSubProcess">
<bpmndi:BPMNShape bpmnElement="startevent1" id="Shape-startevent1">
<omgdc:Bounds height="32.0" width="32.0" x="40.0" y="5.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="startEntry" id="BPMNShape_startEntry">
<omgdc:Bounds height="55.0" width="105.0" x="80.0" y="160.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="startEntry" id="Shape-startEntry">
<omgdc:Bounds height="55.0" width="105.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="headApply" id="BPMNShape_headApply">
<omgdc:Bounds height="55.0" width="105.0" x="778.0" y="158.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="headApply" id="Shape-headApply">
<omgdc:Bounds height="55.0" width="105.0" x="710.0" y="310.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
<omgdc:Bounds height="40.0" width="40.0" x="916.0" y="167.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="Shape-exclusivegateway2" isMarkerVisible="false">
<omgdc:Bounds height="32.0" width="32.0" x="916.0" y="167.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
<omgdc:Bounds height="35.0" width="35.0" x="1040.0" y="168.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="endevent2" id="Shape-endevent2">
<omgdc:Bounds height="32.0" width="32.0" x="1040.0" y="168.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="dataBackFlow" id="BPMNShape_dataBackFlow">
<omgdc:Bounds height="55.0" width="105.0" x="884.0" y="51.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="dataBackFlow" id="Shape-dataBackFlow">
<omgdc:Bounds height="55.0" width="105.0" x="880.0" y="-5.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="entrySubprocess" id="BPMNShape_entrySubprocess">
<omgdc:Bounds height="205.0" width="421.0" x="200.0" y="77.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="entrySubprocess" id="Shape-entrySubprocess" isExpanded="true">
<omgdc:Bounds height="205.0" width="421.0" x="200.0" y="77.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="205.0" width="421.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="startevent2" id="BPMNShape_startevent2">
<omgdc:Bounds height="35.0" width="35.0" x="210.0" y="200.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="exclusivegateway5" id="Shape-exclusivegateway5" isMarkerVisible="false">
<omgdc:Bounds height="32.0" width="32.0" x="760.0" y="160.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="dataEntrySubTask" id="BPMNShape_dataEntrySubTask">
<omgdc:Bounds height="55.0" width="105.0" x="270.0" y="190.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="startevent2" id="Shape-startevent2">
<omgdc:Bounds height="32.0" width="32.0" x="210.0" y="200.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="dataApply" id="BPMNShape_dataApply">
<omgdc:Bounds height="55.0" width="105.0" x="380.0" y="120.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="dataEntrySubTask" id="Shape-dataEntrySubTask">
<omgdc:Bounds height="55.0" width="105.0" x="270.0" y="190.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent3" id="BPMNShape_endevent3">
<omgdc:Bounds height="35.0" width="35.0" x="570.0" y="200.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="dataApply" id="Shape-dataApply">
<omgdc:Bounds height="55.0" width="105.0" x="380.0" y="120.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway3" id="BPMNShape_exclusivegateway3">
<omgdc:Bounds height="40.0" width="40.0" x="510.0" y="127.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="endevent3" id="Shape-endevent3">
<omgdc:Bounds height="32.0" width="32.0" x="570.0" y="200.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway4" id="BPMNShape_exclusivegateway4">
<omgdc:Bounds height="40.0" width="40.0" x="412.0" y="200.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="exclusivegateway3" id="Shape-exclusivegateway3" isMarkerVisible="false">
<omgdc:Bounds height="32.0" width="32.0" x="510.0" y="127.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway5" id="BPMNShape_exclusivegateway5">
<omgdc:Bounds height="40.0" width="40.0" x="680.0" y="166.0"></omgdc:Bounds>
<bpmndi:BPMNShape bpmnElement="exclusivegateway4" id="Shape-exclusivegateway4" isMarkerVisible="false">
<omgdc:Bounds height="32.0" width="32.0" x="412.0" y="200.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="45.0" y="187.0"></omgdi:waypoint>
<omgdi:waypoint x="80.0" y="187.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28" sourceElement="entrySubprocess" targetElement="exclusivegateway5">
<omgdi:waypoint x="621.0" y="179.5"/>
<omgdi:waypoint x="760.0" y="176.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
<omgdi:waypoint x="883.0" y="185.0"></omgdi:waypoint>
<omgdi:waypoint x="916.0" y="187.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow29" id="BPMNEdge_flow29" sourceElement="exclusivegateway5" targetElement="dataBackFlow">
<omgdi:waypoint x="775.0" y="161.0"/>
<omgdi:waypoint x="775.0" y="90.0"/>
<omgdi:waypoint x="880.0" y="22.5"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="700.0" y="166.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
<omgdi:waypoint x="956.0" y="187.0"></omgdi:waypoint>
<omgdi:waypoint x="1040.0" y="185.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24" sourceElement="dataEntrySubTask" targetElement="exclusivegateway4">
<omgdi:waypoint x="375.0" y="217.5"/>
<omgdi:waypoint x="412.0" y="216.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="956.0" y="187.0"></omgdc:Bounds>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
<omgdi:waypoint x="936.0" y="167.0"></omgdi:waypoint>
<omgdi:waypoint x="936.0" y="106.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25" sourceElement="exclusivegateway4" targetElement="dataApply">
<omgdi:waypoint x="428.0" y="200.0"/>
<omgdi:waypoint x="428.0" y="175.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="936.0" y="167.0"></omgdc:Bounds>
<omgdc:Bounds height="14.0" width="8.0" x="432.0" y="200.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
<omgdi:waypoint x="884.0" y="78.0"></omgdi:waypoint>
<omgdi:waypoint x="877.0" y="78.0"></omgdi:waypoint>
<omgdi:waypoint x="877.0" y="16.0"></omgdi:waypoint>
<omgdi:waypoint x="1057.0" y="16.0"></omgdi:waypoint>
<omgdi:waypoint x="1057.0" y="168.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26" sourceElement="exclusivegateway4" targetElement="endevent3">
<omgdi:waypoint x="444.0" y="216.0"/>
<omgdi:waypoint x="570.0" y="216.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="452.0" y="220.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
<omgdi:waypoint x="245.0" y="217.0"></omgdi:waypoint>
<omgdi:waypoint x="270.0" y="217.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27" sourceElement="exclusivegateway5" targetElement="headApply">
<omgdi:waypoint x="776.0" y="192.0"/>
<omgdi:waypoint x="776.0" y="310.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="720.0" y="186.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21">
<omgdi:waypoint x="485.0" y="147.0"></omgdi:waypoint>
<omgdi:waypoint x="510.0" y="147.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1" sourceElement="startevent1" targetElement="startEntry">
<omgdi:waypoint x="56.0" y="37.0"/>
<omgdi:waypoint x="56.0" y="150.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
<omgdi:waypoint x="530.0" y="127.0"></omgdi:waypoint>
<omgdi:waypoint x="529.0" y="89.0"></omgdi:waypoint>
<omgdi:waypoint x="452.0" y="89.0"></omgdi:waypoint>
<omgdi:waypoint x="322.0" y="89.0"></omgdi:waypoint>
<omgdi:waypoint x="322.0" y="190.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21" sourceElement="dataApply" targetElement="exclusivegateway3">
<omgdi:waypoint x="485.0" y="147.5"/>
<omgdi:waypoint x="510.0" y="143.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="530.0" y="127.0"></omgdc:Bounds>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
<omgdi:waypoint x="550.0" y="147.0"></omgdi:waypoint>
<omgdi:waypoint x="587.0" y="147.0"></omgdi:waypoint>
<omgdi:waypoint x="587.0" y="200.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22" sourceElement="exclusivegateway3" targetElement="dataEntrySubTask">
<omgdi:waypoint x="529.0" y="130.0"/>
<omgdi:waypoint x="529.0" y="89.0"/>
<omgdi:waypoint x="452.0" y="89.0"/>
<omgdi:waypoint x="322.0" y="89.0"/>
<omgdi:waypoint x="322.5" y="190.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="550.0" y="147.0"></omgdc:Bounds>
<omgdc:Bounds height="14.0" width="7.0" x="530.0" y="127.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
<omgdi:waypoint x="375.0" y="217.0"></omgdi:waypoint>
<omgdi:waypoint x="412.0" y="220.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23" sourceElement="exclusivegateway3" targetElement="endevent3">
<omgdi:waypoint x="538.0" y="147.0"/>
<omgdi:waypoint x="587.0" y="147.0"/>
<omgdi:waypoint x="587.0" y="200.0312805773287"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="550.0" y="147.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
<omgdi:waypoint x="432.0" y="200.0"></omgdi:waypoint>
<omgdi:waypoint x="432.0" y="175.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17" sourceElement="startevent2" targetElement="dataEntrySubTask">
<omgdi:waypoint x="242.0" y="216.0"/>
<omgdi:waypoint x="270.0" y="217.5"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="432.0" y="200.0"></omgdc:Bounds>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
<omgdi:waypoint x="452.0" y="220.0"></omgdi:waypoint>
<omgdi:waypoint x="570.0" y="217.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13" sourceElement="exclusivegateway2" targetElement="dataBackFlow">
<omgdi:waypoint x="935.0" y="170.0"/>
<omgdi:waypoint x="935.0" y="95.0"/>
<omgdi:waypoint x="935.0" y="50.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="452.0" y="220.0"></omgdc:Bounds>
<omgdc:Bounds height="14.0" width="8.0" x="936.0" y="167.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
<omgdi:waypoint x="185.0" y="187.0"></omgdi:waypoint>
<omgdi:waypoint x="200.0" y="179.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14" sourceElement="dataBackFlow" targetElement="endevent2">
<omgdi:waypoint x="985.0" y="30.0"/>
<omgdi:waypoint x="1060.0" y="30.0"/>
<omgdi:waypoint x="1060.0" y="-32.0"/>
<omgdi:waypoint x="1240.0" y="-32.0"/>
<omgdi:waypoint x="1060.0" y="168.50806661517032"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27">
<omgdi:waypoint x="720.0" y="186.0"></omgdi:waypoint>
<omgdi:waypoint x="778.0" y="185.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15" sourceElement="startEntry" targetElement="entrySubprocess">
<omgdi:waypoint x="120.0" y="177.5"/>
<omgdi:waypoint x="200.0" y="179.5"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="8.0" x="720.0" y="186.0"></omgdc:Bounds>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28">
<omgdi:waypoint x="621.0" y="179.0"></omgdi:waypoint>
<omgdi:waypoint x="680.0" y="186.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11" sourceElement="headApply" targetElement="exclusivegateway2">
<omgdi:waypoint x="815.0" y="337.5"/>
<omgdi:waypoint x="916.0" y="183.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow29" id="BPMNEdge_flow29">
<omgdi:waypoint x="700.0" y="166.0"></omgdi:waypoint>
<omgdi:waypoint x="700.0" y="78.0"></omgdi:waypoint>
<omgdi:waypoint x="884.0" y="78.0"></omgdi:waypoint>
<bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12" sourceElement="exclusivegateway2" targetElement="endevent2">
<omgdi:waypoint x="948.0" y="183.0"/>
<omgdi:waypoint x="1040.0" y="184.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="7.0" x="700.0" y="166.0"></omgdc:Bounds>
<omgdc:Bounds height="14.0" width="7.0" x="956.0" y="187.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
</definitions>
......@@ -30,8 +30,8 @@ spring:
max-file-size: 20Mb
max-request-size: 100Mb
redis:
host: 192.168.0.192
# host: 127.0.0.1
# host: 192.168.0.192
host: 127.0.0.1
port: 6379
session:
store-type: redis
......@@ -46,8 +46,8 @@ app:
active-process: MoreSubProcessTest.bpmn
swagger2:
host: localhost:8110
# host: 47.105.236.43/activiti
# host: localhost:8110
host: 47.105.236.43/activiti
security:
permit: true
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment