|
@@ -95,6 +95,8 @@ import org.ssssssss.magicapi.core.service.MagicAPIService;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.regex.Matcher;
|
|
|
|
|
+import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1706,7 +1708,6 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
variableMap.putValue(formConfig.getKey(), formData);
|
|
variableMap.putValue(formConfig.getKey(), formData);
|
|
|
|
|
|
|
|
//判断此表单是否已经提交过
|
|
//判断此表单是否已经提交过
|
|
|
-
|
|
|
|
|
if (formRelationList.stream().anyMatch(r -> Objects.equals(r.getFormId(), formConfig.getFormId()) && r.getFormKey().equals(formConfig.getKey()))) {
|
|
if (formRelationList.stream().anyMatch(r -> Objects.equals(r.getFormId(), formConfig.getFormId()) && r.getFormKey().equals(formConfig.getKey()))) {
|
|
|
|
|
|
|
|
//如果提交过 默认是update
|
|
//如果提交过 默认是update
|
|
@@ -2023,6 +2024,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
if (e.getMessage().contains("sequence flow")) {
|
|
if (e.getMessage().contains("sequence flow")) {
|
|
|
throw new MyException("流转条件错误,请检查流转条件设置!");
|
|
throw new MyException("流转条件错误,请检查流转条件设置!");
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+
|
|
|
throw new MyException("表单提交错误, 请联系系统管理员!");
|
|
throw new MyException("表单提交错误, 请联系系统管理员!");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -4280,7 +4282,10 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
private List<ProcessRecordListVo> getCustomProcessRecordListVos(String processInstanceId, int onlySelf, Integer usageScenario) {
|
|
private List<ProcessRecordListVo> getCustomProcessRecordListVos(String processInstanceId, int onlySelf, Integer usageScenario) {
|
|
|
-
|
|
|
|
|
|
|
+ List<Integer> usageScenarioList = new ArrayList<>();
|
|
|
|
|
+ for (int i = 1; i <= usageScenario; i++){
|
|
|
|
|
+ usageScenarioList.add(i);
|
|
|
|
|
+ }
|
|
|
User user = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_INFO_KEY, new User());
|
|
User user = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_INFO_KEY, new User());
|
|
|
List<Long> roleIds = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_ROLE_ID_KEY, new ArrayList<>());
|
|
List<Long> roleIds = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_ROLE_ID_KEY, new ArrayList<>());
|
|
|
LambdaQueryWrapper<XjrWorkflowOperateRecord> workflowOperateRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<XjrWorkflowOperateRecord> workflowOperateRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
@@ -4312,7 +4317,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
} else {
|
|
} else {
|
|
|
workflowOperateRecordLambdaQueryWrapper
|
|
workflowOperateRecordLambdaQueryWrapper
|
|
|
.eq(XjrWorkflowOperateRecord::getProcessId, processInstanceId)
|
|
.eq(XjrWorkflowOperateRecord::getProcessId, processInstanceId)
|
|
|
- .eq(XjrWorkflowOperateRecord::getUsageScenario, usageScenario)
|
|
|
|
|
|
|
+ .in(XjrWorkflowOperateRecord::getUsageScenario, usageScenarioList)
|
|
|
.orderByAsc(XjrWorkflowOperateRecord::getRecordTime);
|
|
.orderByAsc(XjrWorkflowOperateRecord::getRecordTime);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -4806,7 +4811,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
record.setSchemaId(schemaId);
|
|
record.setSchemaId(schemaId);
|
|
|
record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
|
|
record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
|
|
|
record.setOperateInfo(message);
|
|
record.setOperateInfo(message);
|
|
|
- record.setUsageScenario(1);
|
|
|
|
|
|
|
+ record.setUsageScenario(2);
|
|
|
|
|
|
|
|
xjrWorkflowOperateRecordService.save(record);
|
|
xjrWorkflowOperateRecordService.save(record);
|
|
|
}
|
|
}
|
|
@@ -5383,7 +5388,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<UserDefinedProcessRecordListVo> listPrintApproveRecord(ApproveRecordListDto dto) {
|
|
public List<UserDefinedProcessRecordListVo> listPrintApproveRecord(ApproveRecordListDto dto) {
|
|
|
- List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 2);
|
|
|
|
|
|
|
+ List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 1);
|
|
|
|
|
|
|
|
List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
|
|
List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
|
|
|
for(ProcessRecordListVo p : processRecordListVos){
|
|
for(ProcessRecordListVo p : processRecordListVos){
|
|
@@ -5408,25 +5413,72 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<UserDefinedProcessRecordListVo> listAuditApproveRecord(ApproveRecordListDto dto) {
|
|
public List<UserDefinedProcessRecordListVo> listAuditApproveRecord(ApproveRecordListDto dto) {
|
|
|
- List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 1);
|
|
|
|
|
|
|
+ List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 2);
|
|
|
|
|
|
|
|
List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
|
|
List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
|
|
|
for(ProcessRecordListVo p : processRecordListVos){
|
|
for(ProcessRecordListVo p : processRecordListVos){
|
|
|
String comment = p.getComment();
|
|
String comment = p.getComment();
|
|
|
String[] commentArr = comment.split(",");
|
|
String[] commentArr = comment.split(",");
|
|
|
- String[] approveUserNameArr = commentArr[0].split(":");
|
|
|
|
|
- String[] approveResultArr = commentArr[1].split(":");
|
|
|
|
|
- String[] approveCommentArr = commentArr[2].split(":");
|
|
|
|
|
- userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
|
|
|
|
|
- setNodeType(p.getNodeType());
|
|
|
|
|
- setNodeName(p.getNodeName());
|
|
|
|
|
- setComment(p.getComment());
|
|
|
|
|
- setStartTime(p.getStartTime());
|
|
|
|
|
- setCirculateMessage(p.getCirculateMessage());
|
|
|
|
|
- setApproveUserName(approveUserNameArr[1]);
|
|
|
|
|
- setApproveResult(approveResultArr[1]);
|
|
|
|
|
- setApproveComment(approveCommentArr[1]);
|
|
|
|
|
- }});
|
|
|
|
|
|
|
+ if(commentArr.length > 1){
|
|
|
|
|
+ String[] approveUserNameArr = commentArr[0].split(":");
|
|
|
|
|
+ String[] approveResultArr = commentArr[1].split(":");
|
|
|
|
|
+ String[] approveCommentArr = commentArr[2].split(":");
|
|
|
|
|
+ userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
|
|
|
|
|
+ setNodeType(p.getNodeType());
|
|
|
|
|
+ setNodeName(p.getNodeName());
|
|
|
|
|
+ setComment(p.getComment());
|
|
|
|
|
+ setStartTime(p.getStartTime());
|
|
|
|
|
+ setCirculateMessage(p.getCirculateMessage());
|
|
|
|
|
+ setApproveUserName(approveUserNameArr[1]);
|
|
|
|
|
+ setApproveResult(approveResultArr[1]);
|
|
|
|
|
+ setApproveComment(approveCommentArr[1]);
|
|
|
|
|
+ }});
|
|
|
|
|
+ }
|
|
|
|
|
+ if(p.getNodeName().equals("开始节点")) {
|
|
|
|
|
+ userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
|
|
|
|
|
+ setNodeType(p.getNodeType());
|
|
|
|
|
+ setComment(p.getComment());
|
|
|
|
|
+ setStartTime(p.getStartTime());
|
|
|
|
|
+ setCirculateMessage(p.getCirculateMessage());
|
|
|
|
|
+ setNodeName("流程发起");
|
|
|
|
|
+ setApproveResult("发起");
|
|
|
|
|
+ Pattern pattern = Pattern.compile("【(.*?)】");
|
|
|
|
|
+ Matcher matcher = pattern.matcher(p.getComment());
|
|
|
|
|
+ if (matcher.find()) {
|
|
|
|
|
+ setApproveUserName(matcher.group(1));
|
|
|
|
|
+ }
|
|
|
|
|
+ setApproveComment("发起流程");
|
|
|
|
|
+ }});
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(p.getNodeName().equals("结束节点")) {
|
|
|
|
|
+ userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
|
|
|
|
|
+ setNodeType(p.getNodeType());
|
|
|
|
|
+ setComment(p.getComment());
|
|
|
|
|
+ setStartTime(p.getStartTime());
|
|
|
|
|
+ setCirculateMessage(p.getCirculateMessage());
|
|
|
|
|
+ setNodeName("流程结束");
|
|
|
|
|
+ setApproveResult("完成");
|
|
|
|
|
+ setApproveComment("结束流程");
|
|
|
|
|
+ }});
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(p.getComment().contains("准备审批")) {
|
|
|
|
|
+ userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
|
|
|
|
|
+ setNodeType(p.getNodeType());
|
|
|
|
|
+ setComment(p.getComment());
|
|
|
|
|
+ setStartTime(p.getStartTime());
|
|
|
|
|
+ setCirculateMessage(p.getCirculateMessage());
|
|
|
|
|
+ setNodeName("准备审批");
|
|
|
|
|
+ setApproveResult("准备审批");
|
|
|
|
|
+ Pattern pattern = Pattern.compile("【(.*?)】");
|
|
|
|
|
+ Matcher matcher = pattern.matcher(p.getComment());
|
|
|
|
|
+ if (matcher.find()) {
|
|
|
|
|
+ setApproveUserName(matcher.group(1));
|
|
|
|
|
+ }
|
|
|
|
|
+ setApproveComment("准备审批");
|
|
|
|
|
+ }});
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return userDefinedProcessRecordListVos;
|
|
return userDefinedProcessRecordListVos;
|
|
|
}
|
|
}
|