|
|
@ -33,11 +33,9 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc;
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.service.*;
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.service.*;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.vo.RepeatedTaskVo;
|
|
|
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.*;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.*;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.*;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.*;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
|
|
|
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
@ -456,9 +454,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
variables.put("approvd", approve.getResult());
|
|
|
|
variables.put("approvd", approve.getResult());
|
|
|
|
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
|
|
|
|
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
|
|
|
|
if (approve.getResult()) {
|
|
|
|
if (approve.getResult()) {
|
|
|
|
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken);
|
|
|
|
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
disposeFailureTask(task, flowTaskInfo.getFormId(), variables);
|
|
|
|
disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
userapproveService.save(userToken, approve, task, flowTaskInfo.getFormId());
|
|
|
|
userapproveService.save(userToken, approve, task, flowTaskInfo.getFormId());
|
|
|
|
successCount++;
|
|
|
|
successCount++;
|
|
|
@ -475,7 +474,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 处理审批成功任务
|
|
|
|
* 处理审批成功任务
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken) {
|
|
|
|
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve) throws Exception {
|
|
|
|
//进入下一个节点
|
|
|
|
//进入下一个节点
|
|
|
|
taskService.complete(task.getId(), variables);
|
|
|
|
taskService.complete(task.getId(), variables);
|
|
|
|
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition);
|
|
|
|
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition);
|
|
|
@ -488,17 +487,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
if (null != taskList && !taskList.isEmpty()) {
|
|
|
|
if (null != taskList && !taskList.isEmpty()) {
|
|
|
|
taskData = taskList.get(0);
|
|
|
|
taskData = taskList.get(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
|
|
|
|
if (ObjectUtils.isEmpty(taskData)) {
|
|
|
|
if (ObjectUtils.isEmpty(taskData)) {
|
|
|
|
model.setFinishtime(System.currentTimeMillis());
|
|
|
|
model.setFinishtime(System.currentTimeMillis());
|
|
|
|
model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END);
|
|
|
|
model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END);
|
|
|
|
ocrTaskchildPictureService.updateById(model);
|
|
|
|
ocrTaskchildPictureService.updateById(model);
|
|
|
|
|
|
|
|
OcrPicture picture = ocrPictureService.getById(model.getPictureid());
|
|
|
|
|
|
|
|
ocrTaskchildPictureService.sendFlowTaskResult(childPicture, picture, approve);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
//判断节点上的描述字段,是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录
|
|
|
|
//判断节点上的描述字段,是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录
|
|
|
|
if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) {
|
|
|
|
if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) {
|
|
|
|
User user = userService.findByLoginname(formData.getAssignee());
|
|
|
|
User user = userService.findByLoginname(formData.getAssignee());
|
|
|
|
userFinalService.save(user.getId().toString(), formId);
|
|
|
|
userFinalService.save(user.getId().toString(), formId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
|
|
|
|
|
|
|
|
this.sendMsg(childPicture, userToken);
|
|
|
|
this.sendMsg(childPicture, userToken);
|
|
|
|
childPicture.setTaskId(taskData.getId());
|
|
|
|
childPicture.setTaskId(taskData.getId());
|
|
|
|
childPicture.setTaskname(taskData.getName());
|
|
|
|
childPicture.setTaskname(taskData.getName());
|
|
|
@ -512,7 +513,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 处理失败任务
|
|
|
|
* 处理失败任务
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void disposeFailureTask(Task task, String formId, Map<String, Object> variables) {
|
|
|
|
private void disposeFailureTask(Task task, String formId, Map<String, Object> variables, FlowApprove approve) throws Exception {
|
|
|
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
|
|
|
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
|
|
|
|
//我这里以 流程定义key(oa_category_t定义的关键字,逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
|
|
|
|
//我这里以 流程定义key(oa_category_t定义的关键字,逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
|
|
|
|
String businesskey = processInstance.getBusinessKey();
|
|
|
|
String businesskey = processInstance.getBusinessKey();
|
|
|
@ -535,8 +536,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
//设置流程结束状态
|
|
|
|
//设置流程结束状态
|
|
|
|
iFormCustomService.endForm(busskey[1], SystemConstantsOa.OA_STATUS_TYPE_REFUSE, assignee, task.getProcessInstanceId(), task.getName());
|
|
|
|
iFormCustomService.endForm(busskey[1], SystemConstantsOa.OA_STATUS_TYPE_REFUSE, assignee, task.getProcessInstanceId(), task.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//1、获取终止节点
|
|
|
|
|
|
|
|
List<EndEvent> endNodes = findEndFlowElement(task.getProcessDefinitionId());
|
|
|
|
|
|
|
|
//2、执行终止
|
|
|
|
//2、执行终止
|
|
|
|
List<Execution> executions = runtimeService.createExecutionQuery().parentId(task.getProcessInstanceId()).list();
|
|
|
|
List<Execution> executions = runtimeService.createExecutionQuery().parentId(task.getProcessInstanceId()).list();
|
|
|
|
List<String> executionIds = new ArrayList<>();
|
|
|
|
List<String> executionIds = new ArrayList<>();
|
|
|
@ -544,6 +543,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
|
|
|
|
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
|
|
|
|
taskchildPicture.setFinishtime(System.currentTimeMillis());
|
|
|
|
taskchildPicture.setFinishtime(System.currentTimeMillis());
|
|
|
|
ocrTaskchildPictureService.updateById(taskchildPicture);
|
|
|
|
ocrTaskchildPictureService.updateById(taskchildPicture);
|
|
|
|
|
|
|
|
OcrPicture picture = ocrPictureService.getById(taskchildPicture.getPictureid());
|
|
|
|
|
|
|
|
ocrTaskchildPictureService.sendFlowTaskResult(taskchildPicture, picture, approve);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//发送消息
|
|
|
|
//发送消息
|
|
|
@ -1961,13 +1963,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "and":
|
|
|
|
case "and":
|
|
|
|
// 添加 "and" 查询条件
|
|
|
|
// 添加 "and" 查询条件
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"and");
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(), "and");
|
|
|
|
SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
searchQuery.setSearchQuery(andQuery);
|
|
|
|
searchQuery.setSearchQuery(andQuery);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "or":
|
|
|
|
case "or":
|
|
|
|
// 添加 "or" 查询条件
|
|
|
|
// 添加 "or" 查询条件
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"or");
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(), "or");
|
|
|
|
SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
searchQuery.setSearchQuery(orQuery);
|
|
|
|
searchQuery.setSearchQuery(orQuery);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -2010,8 +2012,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
case "time":
|
|
|
|
case "time":
|
|
|
|
//格式化时间数据
|
|
|
|
//格式化时间数据
|
|
|
|
String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
beginTime = DateUtil.parse(times[0]+" 00:00:00", "yyyy/MM/dd HH:mm:ss");
|
|
|
|
beginTime = DateUtil.parse(times[0] + " 00:00:00", "yyyy/MM/dd HH:mm:ss");
|
|
|
|
endTime = DateUtil.parse(times[1]+" 23:59:59", "yyyy/MM/dd HH:mm:ss");
|
|
|
|
endTime = DateUtil.parse(times[1] + " 23:59:59", "yyyy/MM/dd HH:mm:ss");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2062,14 +2064,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
//时间区间数据
|
|
|
|
//时间区间数据
|
|
|
|
//相等
|
|
|
|
//相等
|
|
|
|
if (queryType) {
|
|
|
|
if (queryType) {
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield()+"Start", beginTime.getTime());
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield() + "Start", beginTime.getTime());
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield()+"End", endTime.getTime());
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield() + "End", endTime.getTime());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//不相等
|
|
|
|
//不相等
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield()+"Start","or");
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield() + "Start", "or");
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield()+"Start", beginTime.getTime());
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield() + "Start", beginTime.getTime());
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield()+"End", endTime.getTime());
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield() + "End", endTime.getTime());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|