|
|
|
@ -10,6 +10,7 @@ import cn.jyjz.flowable.entity.FlowTaskInfo;
|
|
|
|
|
import cn.jyjz.flowable.service.IFlowInstanceService;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.language.SystemMessage;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
|
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.dataDao.FlowableccMybatisDao;
|
|
|
|
@ -32,6 +33,7 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc;
|
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.service.*;
|
|
|
|
|
|
|
|
|
|
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.service.*;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
|
|
|
|
@ -439,7 +441,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(approve.getFlowTaskInfoList())) {
|
|
|
|
|
List<FlowTaskInfo> flowTaskInfoList = approve.getFlowTaskInfoList();
|
|
|
|
|
for (FlowTaskInfo flowTaskInfo : flowTaskInfoList) {
|
|
|
|
|
if(!formIds.contains(flowTaskInfo.getFormId())){
|
|
|
|
|
if (!formIds.contains(flowTaskInfo.getFormId())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
// 当前要处理的任务
|
|
|
|
@ -1289,7 +1291,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
* @param tenantId
|
|
|
|
|
* @param pageUtils
|
|
|
|
|
*/
|
|
|
|
|
public void getMyProcessInstances(User user, String tenantId, Map<String, Object> searchQuery, PageUtils pageUtils) {
|
|
|
|
|
public void getMyProcessInstances(User user, String tenantId, Map<String, Object> searchQuery, PageUtils pageUtils, String userSearchId) {
|
|
|
|
|
ParamterPage paramterPage = new ParamterPage();
|
|
|
|
|
paramterPage.setStart((pageUtils.getCurrPage() - 1) * pageUtils.getPageSize());
|
|
|
|
|
paramterPage.setPagesize(pageUtils.getPageSize());
|
|
|
|
@ -1314,6 +1316,15 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
query.put("searchassignee", user.getLoginname());
|
|
|
|
|
query.putAll(searchQuery);
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isBlank(userSearchId)) {
|
|
|
|
|
OcrUsersearch ocrUsersearch = ocrUsersearchService.selectByUserSearchId(userSearchId);
|
|
|
|
|
SearchQuery additionalQuery = new SearchQuery();
|
|
|
|
|
for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) {
|
|
|
|
|
this.formattingSearchChild1(additionalQuery, usersearchchild);
|
|
|
|
|
}
|
|
|
|
|
query.putAll(additionalQuery.getQuery());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Long count = ocrTaskchildPictureService.listmytaskCount(query);
|
|
|
|
|
|
|
|
|
|
query.put("page", paramterPage);
|
|
|
|
@ -1804,10 +1815,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ResultVo repetitionTaskList(Integer pageNo, Integer pageSize) {
|
|
|
|
|
Page<OcrTaskChildPictureVo> page = new Page<>(pageNo, pageSize);
|
|
|
|
|
|
|
|
|
|
return ResultVoUtil.success(flowableccMybatisDao.repetitionTaskList(page));
|
|
|
|
|
public IPage<OcrTaskchildPicture> repetitionTaskList(Integer pageNo, Integer pageSize) {
|
|
|
|
|
Page<OcrTaskchildPicture> page = new Page<>(pageNo, pageSize);
|
|
|
|
|
List<OcrTaskchildPicture> result = flowableccMybatisDao.repetitionTaskList();
|
|
|
|
|
List<OcrTaskchildPicture> collect = result.stream().skip((pageNo - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
|
|
|
|
page.setRecords(collect);
|
|
|
|
|
page.setTotal(result.size());
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1937,5 +1951,132 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
return queryWrapper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SearchQuery formattingSearchChild1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
switch (usersearchchild.getSearchRelationType()) {
|
|
|
|
|
case "where":
|
|
|
|
|
// 添加 "where" 查询条件
|
|
|
|
|
this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
break;
|
|
|
|
|
case "and":
|
|
|
|
|
// 添加 "and" 查询条件
|
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"and");
|
|
|
|
|
SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
searchQuery.setSearchQuery(andQuery);
|
|
|
|
|
break;
|
|
|
|
|
case "or":
|
|
|
|
|
// 添加 "or" 查询条件
|
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"or");
|
|
|
|
|
SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
searchQuery.setSearchQuery(orQuery);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return searchQuery;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SearchQuery formattingSearchType1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
//查询类型 相等true 不相等fase
|
|
|
|
|
boolean queryType = "eq".equals(usersearchchild.getSearchtype());
|
|
|
|
|
|
|
|
|
|
// 1.获取检查数据,确定数据类型
|
|
|
|
|
String valueType = SearchParaFormatting.clickSearchValue(usersearchchild.getSearchvalue());
|
|
|
|
|
List<String> arrayData = null; //集合型数据
|
|
|
|
|
List<Integer> sectionInts = null; //纯数字区间型数据
|
|
|
|
|
String[] sections = null; //字符串区间型数据
|
|
|
|
|
DateTime beginTime = null; //日期时间区间型数据
|
|
|
|
|
DateTime endTime = null; //日期时间区间型数据
|
|
|
|
|
|
|
|
|
|
// 2.根据数据类型,解构数据
|
|
|
|
|
switch (valueType) {
|
|
|
|
|
case "array":
|
|
|
|
|
//处理多文件
|
|
|
|
|
String[] datas = usersearchchild.getSearchvalue().split(",");
|
|
|
|
|
arrayData = Arrays.asList(datas);
|
|
|
|
|
break;
|
|
|
|
|
case "section":
|
|
|
|
|
//格式化数据,仅在做区间的时候去除空格,其他地方不进行空格去除.
|
|
|
|
|
sections = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
//校验是否纯数字,纯数字的话,要转成int,否则比对时会有问题
|
|
|
|
|
sectionInts = new ArrayList<>();
|
|
|
|
|
for (String data : sections) {
|
|
|
|
|
if (data.matches("\\d+")) {
|
|
|
|
|
sectionInts.add(Integer.parseInt(data));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "time":
|
|
|
|
|
//格式化时间数据
|
|
|
|
|
String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
beginTime = DateUtil.parse(times[0], "yyyy/MM/dd");
|
|
|
|
|
endTime = DateUtil.parse(times[1], "yyyy/MM/dd");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 3.根据查询类型 组装查询条件 相等
|
|
|
|
|
switch (valueType) {
|
|
|
|
|
case "array":
|
|
|
|
|
//集合数据
|
|
|
|
|
//相等
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addNotIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "section":
|
|
|
|
|
//数字区间查询
|
|
|
|
|
if (sectionInts != null && sectionInts.size() == 2) {
|
|
|
|
|
if (queryType) {
|
|
|
|
|
//相等
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//字符串区间查询
|
|
|
|
|
if (queryType) {
|
|
|
|
|
//相等
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case "time":
|
|
|
|
|
//时间区间数据
|
|
|
|
|
//相等
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
searchQuery.addNotEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
}
|
|
|
|
|
return searchQuery;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|