fix:调整ai审批工具弹窗,相似度为100的为空时,传0

pull/42/head
DELL 1 year ago
parent 45600563f5
commit 0d0ee047ca

@ -95,6 +95,9 @@ public class SearchQuery implements java.io.Serializable{
public void addGreater(String field,Integer value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER);
}
public void addGreater(String field,String value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER);
}
public void addGreater(String field,Long value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER);
@ -111,6 +114,9 @@ public class SearchQuery implements java.io.Serializable{
public void addGreaterEqual(String field,Integer value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL);
}
public void addGreaterEqual(String field,String value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL);
}
public void addGreaterEqual(String field,BigDecimal value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL);
@ -121,6 +127,9 @@ public class SearchQuery implements java.io.Serializable{
public void addLess(String field,Integer value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS);
}
public void addLess(String field,String value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS);
}
public void addLess(String field,Long value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS);
@ -134,6 +143,9 @@ public class SearchQuery implements java.io.Serializable{
public void addLessEqual(String field,Integer value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL);
}
public void addLessEqual(String field,String value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL);
}
public void addLessEqual(String field,BigDecimal value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL);

@ -307,13 +307,16 @@ public class FlowTaskController extends BaseController {
searchQuery.addLike("fromtaskname", taskName);
}
//获取用户预设检索条件id
String userSearchId = request.getParameter("userSearchId");
User user = this.userService.getSessionUser(request);
if (user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))) {
flowTaskService.getMyProcessInstances(searchQuery.getQuery(), pageUtils);
} else {
flowTaskService.getMyProcessInstances(user, tenantId, searchQuery.getQuery(), pageUtils);
flowTaskService.getMyProcessInstances(user, tenantId, searchQuery.getQuery(), pageUtils,userSearchId);
//待办信息,增加是否查看标记
// if(StringUtils.isNotBlank(assigneeId) && assigneeId.equals(user.getId().toString())){

@ -70,7 +70,7 @@ public interface IFlowTaskService {
* @param tenantId
* @param pageUtils
*/
public void getMyProcessInstances(User user,String tenantId, Map<String, Object> query,PageUtils pageUtils);
public void getMyProcessInstances(User user,String tenantId, Map<String, Object> query,PageUtils pageUtils,String userSearchId);
/**
*

@ -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;
@ -439,7 +440,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 +1290,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 +1315,15 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
query.put("searchassignee", user.getLoginname());
query.putAll(searchQuery);
if (!userSearchId.isEmpty()) {
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);
@ -1937,5 +1947,130 @@ 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 andQuery = this.formattingSearchType1(new SearchQuery(), usersearchchild);
searchQuery.setSearchQuery(andQuery);
break;
case "or":
// 添加 "or" 查询条件
SearchQuery orQuery = this.formattingSearchType1(new 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;
}
}

@ -147,11 +147,10 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
@Override
public Map<Object, Object> selectaisp(String userid, String id,Integer nodeType) {
List<Map<Object, Object>> resultList = ocrsearchhistorymapper.selectaispList(id);
Map<Object, Object> mappedResults = new LinkedHashMap<>();
if (resultList == null || resultList.isEmpty()) {
return Collections.emptyMap();
}
Map<Object, Object> mappedResults = new LinkedHashMap<>();
String selectaiuser = ocrsearchhistorymapper.selectaiuser(userid);
mappedResults.put("packageId", id);
mappedResults.put("tenantUserName", selectaiuser);
@ -160,30 +159,32 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
int similarComplete = 0;
List<String> pictureIds = new ArrayList<>(); // 存储所有的pictureId
for (Map<Object, Object> selectaisp : resultList) {
Object pictureResult = selectaisp.get("pictureResult");
String pictureResultStr = pictureResult.toString();
if ("100.0".equals(pictureResultStr)) {
similarComplete++;
Long pictureId = (Long) selectaisp.get("pictureId");
if (pictureId != null) {
pictureIds.add(String.valueOf(pictureId)); // 转换为String
if(selectaisp.size()!=0){
Object pictureResult = selectaisp.get("pictureResult");
String pictureResultStr = pictureResult.toString();
if ("100.0".equals(pictureResultStr)) {
similarComplete++;
Long pictureId = (Long) selectaisp.get("pictureId");
if (pictureId != null) {
pictureIds.add(String.valueOf(pictureId)); // 转换为String
}
}
}
}
if(similarComplete==0){
return Collections.emptyMap();
}
List<String> pendingApprovalList = new ArrayList<>(); // 存储待审批的pictureId集合
List<String> approvedList = new ArrayList<>(); // 存储通过的pictureId集合
List<String> failedList = new ArrayList<>(); // 存储不通过的pictureId集合
List<OcrPicture> failedPictureIds = ocrPictureService.getPictureNodeStatesList(pictureIds, nodeType);
for (OcrPicture picture : failedPictureIds) {
if (picture.getHistoryStates() == 3) {
failedList.add(picture.getRemark());
} else if (picture.getHistoryStates() == 1) {
pendingApprovalList.add(picture.getRemark());
} else if (picture.getHistoryStates() == 2) {
approvedList.add(picture.getRemark());
if(pictureIds.size()!=0){
List<OcrPicture> failedPictureIds = ocrPictureService.getPictureNodeStatesList(pictureIds, nodeType);
for (OcrPicture picture : failedPictureIds) {
if (picture.getHistoryStates() == 3) {
failedList.add(picture.getRemark());
} else if (picture.getHistoryStates() == 1) {
pendingApprovalList.add(picture.getRemark());
} else if (picture.getHistoryStates() == 2) {
approvedList.add(picture.getRemark());
}
}
}

Loading…
Cancel
Save