feat:修改创建任务逻辑

pull/166/head
sunchenliang 11 months ago
parent b1435e04c3
commit d3f3fc9804

@ -23,13 +23,11 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Category;
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
import cn.jyjz.xiaoyao.oa.from.vo.RepeatedTaskVo;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearch;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearchchild;
import cn.jyjz.xiaoyao.ocr.service.OcrSearchmanagerService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchService;
import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchchildService;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import com.alanpoi.common.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -39,6 +37,7 @@ import io.swagger.annotations.*;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@ -75,6 +74,9 @@ public class FlowTaskController extends BaseController {
@Resource
private OcrUsersearchchildService usersearchchildService;
@Autowired
private OcrContractorTaskService contractorTaskService;
// /**
// * 查询我的待办任务
// * @return
@ -488,6 +490,7 @@ public class FlowTaskController extends BaseController {
} else {
searchQuery.addEqual("thisLoginUserid", user.getLoginname());
searchQuery.addEqual("tenantid", tenantId);
}
String searchId = request.getParameter("searchId");
@ -497,10 +500,13 @@ public class FlowTaskController extends BaseController {
disSearchQuery(searchQuery, userSearch);
}
}
List<OcrContractorTask> contractorTask = contractorTaskService.list(new LambdaQueryWrapper<OcrContractorTask>().eq(OcrContractorTask::getTenantId,tenantId ));
if (!org.springframework.util.CollectionUtils.isEmpty(contractorTask)) {
OcrContractorTask ocrContractorTask = contractorTask.get(0);
searchQuery.addEqual("contractor", ocrContractorTask.getField());
}
Map<String, Object> query = searchQuery.getQuery();
flowTaskService.getFinalProcessInstances(query, pageUtils, user);
return ResultVoUtil.success(pageUtils);
}

@ -911,12 +911,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
OcrPicture first = ocrPictureService.getOne(new LambdaQueryWrapper<OcrPicture>().eq(OcrPicture::getId, taskchildPicture.getPictureid()));
List<OcrContractorTask> contractorList = contractorTaskService.list(new LambdaQueryWrapper<OcrContractorTask>().eq(OcrContractorTask::getTenantId, taskchildPicture.getTenantid()));
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(contractorList)) {
List<String> userList = contractorList.stream().map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList());
Class<? extends OcrPicture> aClass = first.getClass();
Field field = aClass.getDeclaredField(contractorList.get(0).getField());
field.setAccessible(true);
String fieldValue = (String) field.get(first);
log.info("厂商名称------{}",fieldValue);
log.info("厂商名称------{}", fieldValue);
List<String> collect = contractorList.stream().filter(contractorTask -> contractorTask.getContractor().equals(fieldValue)).map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList());
List<String> assignees = new ArrayList<>();
List<String> assigneeList = new ArrayList<>();
for (String str : candidateUsers) {
if (collect.contains(str)) {
@ -925,7 +927,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(assigneeList)) {
taskService.claim(task.getId(), assigneeList.get(rand.nextInt(assigneeList.size())));
}else {
}
if (CollectionUtils.isEmpty(assigneeList) && org.apache.commons.collections4.CollectionUtils.isNotEmpty(userList)) {
List<String> userCcollect = candidateUsers.stream().filter(o -> !userList.contains(o)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(userCcollect)) {
userCcollect = candidateUsers;
}
taskService.claim(task.getId(), userCcollect.get(rand.nextInt(userCcollect.size())));
} else {
taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size())));
}
} else {

@ -1016,7 +1016,7 @@
<select id="listFinalTask" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture"
parameterType="java.util.Map">
select tcp.*,
select distinct tcp.*,
pic.field11 reporttime,
pic.similarity_score similarityscore,
pic.server_thumbnail_url serverThumbnailUrl,
@ -1024,6 +1024,7 @@
from ocr_taskchild_picture tcp
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
left join ocr_contractor_task oct on pic.tenant_id = oct.tenant_id and pic.${contractor.value} = oct.contractor
<include refid="Base_Where_union">
</include>
and tcp.ISFINAIL = 1
@ -1034,8 +1035,9 @@
</if>
<if test="thisLoginUserid != null and isFail != null">
and (FIND_IN_SET(#{thisLoginUserid.value}
, tcp.ASSIGNEE)
or tcp.STATES = 5)
, tcp.ASSIGNEE) or
if((select count(1) from ocr_contractor_task where tenant_id =#{tenantid.value} and pic.${contractor.value} = contractor and task_user_assignee = #{thisLoginUserid.value})>1, 1=1,tcp.STATES = 5))
<!-- or (oct.id is not null and oct.tenant_id = #{tenantid}) or tcp.STATES = 5)-->
</if>
<if test="fromuptimeStart != null">

Loading…
Cancel
Save