fix: 20240809-bug修复

pull/166/head
Brian Lee 11 months ago
parent 8327da7f59
commit 90f502b84a

@ -440,9 +440,7 @@ public class FlowTaskController extends BaseController {
searchQuery.addEqual("states", izstatus);
}
}
if (Boolean.parseBoolean(isFail)) {
searchQuery.addEqual("isFail", "1");
}
if (org.springframework.util.StringUtils.hasText(iztaskrrom)) {
if (iztaskrrom.contains(",")) {
String[] taskrromIds = iztaskrrom.split(","); // 以逗号拆分字符串
@ -485,6 +483,14 @@ public class FlowTaskController extends BaseController {
if (org.apache.commons.lang3.StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
//开启终审历史数据查询
if (Boolean.parseBoolean(isFail)) {
searchQuery.addEqual("isFail", "1");
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//终审历史数据查询,要根据权限进行过滤,过滤不属于当前任务的数据。
searchQuery = contractorTaskService.getUserAuditBySearchQuery(searchQuery,userToken.getLoginname(),tenantId);
}
User user = this.userService.getSessionUser(request);
if (user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))) {
} else {
@ -500,11 +506,11 @@ 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());
}
// 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);

@ -37,6 +37,7 @@ import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
import cn.jyjz.xiaoyao.oa.from.vo.RepeatedContentVo;
import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi;
import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.enums.UserAuditTypeEnum;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo;
@ -905,36 +906,29 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (StringUtils.isBlank(userTask.getAssignee())) {
//得到候选人
List<String> candidateUsers = userTask.getCandidateUsers();
List<String> availableUsers = new ArrayList<>();
List<String> defaultUsers = new ArrayList<>();
Map<UserAuditTypeEnum,List<String>> auditMap = null;
if (null != candidateUsers && !candidateUsers.isEmpty()) {
Random rand = new Random();
//1.获取任务id
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getProcessinstanceid, processInstanceId).eq(OcrTaskchildPicture::getProcessdefinitionid, processDefinitionId));
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);
List<String> collect = contractorList.stream().filter(contractorTask -> contractorTask.getContractor().equals(fieldValue)).map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList());
List<String> assigneeList = getUserCollect(candidateUsers,collect,true);
// for (String str : candidateUsers) {
// if (collect.contains(str)) {
// assigneeList.add(str);
// }
// }
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(assigneeList)) {
taskService.claim(task.getId(), assigneeList.get(rand.nextInt(assigneeList.size())));
}
if (CollectionUtils.isEmpty(assigneeList) && org.apache.commons.collections4.CollectionUtils.isNotEmpty(collect)) {
List<String> userCollect = getUserCollect(candidateUsers, collect, false);
taskService.claim(task.getId(), userCollect.get(rand.nextInt(userCollect.size())));
} else {
taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size())));
if (taskchildPicture!=null){
//2.任务审核鉴权,(确定由那个用户进行审核)
auditMap = ocrPictureService.userAuditRights(taskchildPicture.getPictureid(),candidateUsers);
if (auditMap!=null){
availableUsers = auditMap.get(UserAuditTypeEnum.AvailableUser);
defaultUsers = auditMap.get(UserAuditTypeEnum.DefaultUser);
}
} else {
taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size())));
}
//3.检查是否由可用审核
Random rand = new Random();
if(!availableUsers.isEmpty()){
taskService.claim(task.getId(),availableUsers.size()==1? availableUsers.get(0) : availableUsers.get(rand.nextInt(availableUsers.size())));
}else if (!defaultUsers.isEmpty()){
taskService.claim(task.getId(), defaultUsers.size()==1? defaultUsers.get(0) : defaultUsers.get(rand.nextInt(defaultUsers.size())));
}else{
taskService.claim(task.getId(), candidateUsers.size()==1? candidateUsers.get(0) : candidateUsers.get(rand.nextInt(candidateUsers.size())));
}
}
@ -1260,92 +1254,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Long count = ocrTaskchildPictureService.listFinalCount(query);
List<OcrTaskchildPicture> list = ocrTaskchildPictureService.listFinal(query);
// for (OcrTaskchildPicture taskchildPicture : list) {
// //查询对应的流程分类
// Category category = categoryService.selectDtoById(taskchildPicture.getCategoryid());
// taskchildPicture.setCategoryDto(category);
//
// if (StringUtils.isNotBlank(taskchildPicture.getProcessdefinitionid())) {
//
// List<Task> taskList = this.nowRunTask(taskchildPicture.getProcessinstanceid(), taskchildPicture.getProcessdefinitionid());
// if (null != taskList && !taskList.isEmpty()) {
// taskchildPicture.setTaskId(taskList.get(0).getId());
//
// Task tasknow = taskService.createTaskQuery().taskId(taskchildPicture.getTaskId()).singleResult();
// BpmnModel bpmnModel = repositoryService.getBpmnModel(tasknow.getProcessDefinitionId());
// // 获取节点定义id
// String taskDefinitionKey = tasknow.getTaskDefinitionKey();
// // 根据节点定义id获取节点元素
// FlowElement flowElement = bpmnModel.getFlowElement(taskDefinitionKey);
// if (flowElement instanceof UserTask) {
// UserTask userTask = (UserTask) flowElement;
//
// taskchildPicture.setDocumentation(userTask.getDocumentation());
// }
// }
//
// //查询历史
// List<HistoricTaskInstanceDto> historicTaskInstanceDtos = new ArrayList<>();
// // 查询当前任务的流转信息
// List<HistoricTaskInstance> taskHiInstances = historyService.createHistoricTaskInstanceQuery()
// .processInstanceId(taskchildPicture.getProcessinstanceid())
// .includeProcessVariables()
// .orderByHistoricTaskInstanceStartTime()
// .asc()
// .list();
// for (HistoricTaskInstance taskHiInstance : taskHiInstances) {
// HistoricTaskInstanceDto dto = new HistoricTaskInstanceDto();
// dto.setTaskId(taskHiInstance.getId());
// dto.setTaskName(taskHiInstance.getName());
// dto.setFinishTime(taskHiInstance.getEndTime());
// if (taskHiInstance.getDurationInMillis() != null) {
// dto.setDuration(taskHiInstance.getDurationInMillis() / 1000 + "秒");
// }
// dto.setTaskDefKey(taskHiInstance.getTaskDefinitionKey());
//
// //Map<String,Object> variables = taskHiInstance.getTaskLocalVariables();
//
// Map<String, Object> variables = taskHiInstance.getProcessVariables();
//
// if (null != variables && null != variables.get("approvd")) {
// dto.setState(variables.get("approvd").toString());
// }
//
// if (StringUtils.isNotBlank(taskHiInstance.getAssignee())) {
// if (SystemConstantsOa.OA_TASK_SKIP_ASSIGINE.equals(taskHiInstance.getAssignee())) {
// dto.setAssigneeName(taskHiInstance.getAssignee());
// } else {
// User user1 = userService.findByLoginname(taskHiInstance.getAssignee());
//
// dto.setAssigneeName(user1.getUsername());
// }
//
// }
//
// BpmnModel bpmnModel = repositoryService.getBpmnModel(taskchildPicture.getProcessdefinitionid());
//
//// // 根据节点定义id获取节点元素
// FlowElement flowElement = bpmnModel.getFlowElement(taskHiInstance.getTaskDefinitionKey());
// if (flowElement instanceof UserTask) {
// UserTask userTask = (UserTask) flowElement;
//
// taskchildPicture.setDocumentation(userTask.getDocumentation());
// }
// // 还需要根据 HistoricTaskInstance 找到对应的 审批意见
// List<Comment> processInstanceComments = taskService.getProcessInstanceComments(taskchildPicture.getProcessinstanceid());
// for (Comment comment : processInstanceComments) {
//
// if (comment.getTaskId().equals(taskHiInstance.getId())) {
// // 审批意见
// String fullMessage = comment.getFullMessage();
// dto.setComment(fullMessage);
// }
// }
// historicTaskInstanceDtos.add(dto);
// }
// taskchildPicture.setTransferRecords(historicTaskInstanceDtos);
// }
// }
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
String assignee = ocrTaskchildPicture.getAssignee();
if (assignee.contains(",")) {
@ -1357,6 +1265,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
}
}
if (ocrTaskchildPicture.getIsRepeat() !=null &&ocrTaskchildPicture.getIsRepeat()==1){
ocrTaskchildPicture.setField14("重复");
}else{
ocrTaskchildPicture.setField14("不重复");
}
}
pageUtils.setTotalCount(count.intValue());
pageUtils.setList(list);

@ -21,7 +21,10 @@ import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
import cn.jyjz.xiaoyao.ocr.util.httputil.HttpClient;
import cn.jyjz.xiaoyao.ocr.util.httputil.HttpMethod;
import cn.jyjz.xiaoyao.ocr.util.httputil.HttpParamers;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import lombok.SneakyThrows;
@ -102,7 +105,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
if (resultData.getStatus() == 100) {
//解析基础数据
String data = ApiHelper.decryptResponse(apiConfig.getAccessCode(), resultData);
ApiPage<String> apiPage = JSONUtil.toBean(data, ApiPage.class);
ApiPage<PictureSourceResult> apiPage = JSON.parseObject(data, new TypeReference<ApiPage<PictureSourceResult>>() {});
//日志增加拉取数量
prevailCloudLog.setResponseParam(prevailCloudLog.getResponseParam()+",拉取数量:"+apiPage.getTotal());
if(!isRetry && apiPage.getTotal()==0){
@ -110,7 +113,15 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
return null;
}
//解析数据结果为List
List<PictureSourceResult> listResult = JSONUtil.toList(JSONObject.toJSONString(apiPage.getRecords()), PictureSourceResult.class);
// 创建 PropertyFilter 实例,用于过滤掉值为 null 的字段
PropertyFilter filter = new PropertyFilter() {
@Override
public boolean apply(Object object, String name, Object value) {
return value != null; // 过滤掉值为 null 的字段
}
};
// List<PictureSourceResult> listResult = JSONUtil.toList(JSONObject.toJSONString(apiPage.getRecords()), PictureSourceResult.class);
List<PictureSourceResult> listResult = apiPage.getRecords();
ApiPage<PictureSourceResult> resultApiPage = new ApiPage<>();
resultApiPage.setPageNo(apiPage.getPageNo());
resultApiPage.setPageSize(apiPage.getPageSize());
@ -248,7 +259,6 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
//解析基础数据
String data = ApiHelper.decryptResponse(apiConfig.getAccessCode(), resultData);
ApiPage<String> apiPage = JSONUtil.toBean(data, ApiPage.class);
System.out.println(apiPage);
//解析数据结果为List
// List<PictureSourceResult> listResult = JSONUtil.toList(JSONObject.toJSONString(apiPage.getRecords()),PictureSourceResult.class);
// ApiPage<PictureSourceResult> resultApiPage = new ApiPage<>();

@ -265,11 +265,19 @@ public class OcrTaskchildPicture implements BaseDto, java.io.Serializable {
@ApiModelProperty(value = "拜访终端")
@TableField(exist = false)
private String field3 = "测试拜访终端";
private String field3;
@ApiModelProperty(value = "子计划名称")
@TableField(exist = false)
private String planchildname;
@ApiModelProperty(value = "是否重复")
@TableField(exist = false)
private String field14 = "重复";
private String field14;
@Schema(description = "是否图片重复")
@TableField(exist = false)
private Integer isRepeat;
@ApiModelProperty(value = "历史状态")
@TableField(exist = false)

@ -56,4 +56,8 @@ public class ApproveNodeDto {
*
*/
private Integer isBriefRepeat;
/**
*
*/
private Long approveDate;
}

@ -0,0 +1,12 @@
package cn.jyjz.xiaoyao.ocr.enums;
/**
* TODO
*
* @author shuli.Yao
* @version 1.0
* @date 2024/8/6 19:12
*/
public enum UserAuditTypeEnum {
AvailableUser,DefaultUser,NoAuditUser
}

@ -1,14 +1,35 @@
package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.enums.UserAuditTypeEnum;
import com.baomidou.mybatisplus.extension.service.IService;
/**
import java.util.List;
import java.util.Map;
/**
* ClassName $className$.java
* Description:
* Description:
* Author scl.
* Date 2024/6/23 11:20
*/
public interface OcrContractorTaskService extends IService<OcrContractorTask>{
/**
*
* @param picture
* @param userName
* @return
*/
UserAuditTypeEnum checkUsersAuditByPicture(OcrPicture picture, String userName);
/**
* searchQuery
* @param searchQuery
* @param username
* @param tenantId
* @return
*/
SearchQuery getUserAuditBySearchQuery(SearchQuery searchQuery, String username, String tenantId);
}

@ -5,6 +5,7 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.enums.UserAuditTypeEnum;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -95,4 +96,13 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
OcrTaskchildPicture getOcrTaskChildPictureByPictureId(String pictureId);
IPage<OcrPicture> pagePictureSimilarity(String pictureId, Page<OcrPicture> page, QueryWrapper<OcrPicture> queryWrapper);
/**
* id
*
* @param pictureid
* @param candidateUsers
* @return
*/
Map<UserAuditTypeEnum,List<String>> userAuditRights(Long pictureid, List<String> candidateUsers);
}

@ -324,6 +324,9 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
List<OcrPicture> pictures = new ArrayList<>();
pictures.add(ocrPicture);
try {
if ("287798960352200777".equals(ocrPicture.getId()) || "287798960268309961".equals(ocrPicture.getId())) {
System.out.println("adsd");
}
this.saveCheckDuplicateData(checkDuplicateId,saveList,pictures,ocrPictureList.get(0).getTenantId().toString(),sysUser);
} catch (Exception e) {
logger.error("比对结果入库异常! error:{}",e.getMessage());
@ -349,6 +352,7 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
*/
@Transactional(rollbackFor = Exception.class)
public boolean saveCheckDuplicateData(Long checkDuplicateId,List<OcrCheckDuplicateResult> saveList,List<OcrPicture> ocrPictureList, String tenantId,UserToken sysUser) throws Exception {
//1.批量入库
logger.debug("查重任务:{},开启批量入库任务",checkDuplicateId);
boolean b = checkDuplicateResultService.saveOrUpdateBatch(saveList);

@ -1,19 +1,87 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.hutool.core.util.ArrayUtil;
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.enums.UserAuditTypeEnum;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrContractorTaskMapper;
import cn.jyjz.xiaoyao.ocr.service.OcrContractorTaskService;
import javax.annotation.Resource;
/**
* ClassName $className$.java
* Description:
* Description:
* Author scl.
* Date 2024/6/23 11:20
*/
@Service
public class OcrContractorTaskServiceImpl extends ServiceImpl<OcrContractorTaskMapper, OcrContractorTask> implements OcrContractorTaskService{
@Resource
private OcrPictureService pictureService;
@Override
public UserAuditTypeEnum checkUsersAuditByPicture(OcrPicture picture, String userName) {
//获取当前用户的审核权限
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("task_user_assignee",userName);
queryWrapper.eq("tenant_id",picture.getTenantId());
List<OcrContractorTask> contractorTasks = baseMapper.selectList(queryWrapper);
if (contractorTasks.isEmpty()){
return UserAuditTypeEnum.DefaultUser;
}
//组装检索sql
QueryWrapper checkWrapper = new QueryWrapper();
for (OcrContractorTask contractorTask : contractorTasks) {
String queryVal = contractorTask.getContractor();
//检查是否可能时多个结果
if (queryVal.indexOf(",") >0) {
//多个筛选值,以 xxx,xxx拼接
String [] queryValues = queryVal.split(",");
checkWrapper.in(contractorTask.getField(),queryValues);
}else{
//单个值直接进行筛选即可
checkWrapper.eq(contractorTask.getField(),queryVal);
}
}
checkWrapper.eq("id",picture.getId());
if(pictureService.list(checkWrapper).isEmpty()){
return UserAuditTypeEnum.NoAuditUser;
}
return UserAuditTypeEnum.AvailableUser;
}
@Override
public SearchQuery getUserAuditBySearchQuery(SearchQuery searchQuery, String username, String tenantId) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("task_user_assignee",username);
queryWrapper.eq("tenant_id",tenantId);
List<OcrContractorTask> contractorTasks = baseMapper.selectList(queryWrapper);
for (OcrContractorTask contractorTask : contractorTasks) {
String queryVal = contractorTask.getContractor();
//检查是否可能时多个结果
if (queryVal.indexOf(",") >0) {
//多个筛选值,以 xxx,xxx拼接
String [] queryValues = queryVal.split(",");
searchQuery.addIn(contractorTask.getField(), Arrays.asList(queryValues));
}else{
//单个值直接进行筛选即可
searchQuery.addEqual(contractorTask.getField(),queryVal);
}
}
return searchQuery;
}
}

@ -16,6 +16,7 @@ import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.enums.UserAuditTypeEnum;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
@ -91,6 +92,10 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Resource
private IOcrPictureDuplicateHisService ocrPictureDuplicateHisService;
private Object lock = new Object();
@Resource
private OcrContractorTaskService contractorTaskService;
/**
*
*/
@ -406,6 +411,29 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return page;
}
@Override
public Map<UserAuditTypeEnum,List<String>> userAuditRights(Long pictureid,List<String> candidateUsers) {
List<String> availableAuditUsers = new ArrayList<>();
List<String> defaultAuditUsers = new ArrayList<>();
List<String> noAuditUsers = new ArrayList<>();
OcrPicture picture = baseMapper.selectById(pictureid);
for (String userName : candidateUsers) {
UserAuditTypeEnum userAuditTypeEnum = contractorTaskService.checkUsersAuditByPicture(picture,userName);
if (UserAuditTypeEnum.AvailableUser == userAuditTypeEnum){
availableAuditUsers.add(userName);
}else if (UserAuditTypeEnum.NoAuditUser == userAuditTypeEnum){
noAuditUsers.add(userName);
}else{
defaultAuditUsers.add(userName);
}
}
Map<UserAuditTypeEnum,List<String>> result = new HashMap<>();
result.put(UserAuditTypeEnum.AvailableUser,availableAuditUsers);
result.put(UserAuditTypeEnum.DefaultUser,defaultAuditUsers);
result.put(UserAuditTypeEnum.NoAuditUser,noAuditUsers);
return result;
}
// @Override
// public Long getPhotoDateTime(OcrPicture picture) {
// long timestamp = 0L;

@ -851,14 +851,17 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
return this.save(taskchildPicture);
}
private static ApproveNodeDto getApproveNodeDto(Userapprove userApprove) {
private ApproveNodeDto getApproveNodeDto(Userapprove userApprove) {
Long approveCount = userapproveService.count(new LambdaQueryWrapper<Userapprove>().eq(Userapprove::getFormid, userApprove.getFormid()).eq(Userapprove::getTaskname,userApprove.getTaskname()));
ApproveNodeDto approveNode = new ApproveNodeDto();
approveNode.setApproveRemark(userApprove.getTaskcomment());
approveNode.setApproveResult(userApprove.getStatshis() == 2 ? 0 : 1);
approveNode.setApproveWay(0);
approveNode.setApproveWay(approveCount>1?1:2);
approveNode.setNodeName(userApprove.getTaskname());
approveNode.setReason(userApprove.getReason());
approveNode.setApproveByName(userApprove.getUsername());
approveNode.setApproveDate(userApprove.getCreatedate());
//审批不通过出来方式
approveNode.setProcessMethod(1);
return approveNode;

@ -222,11 +222,9 @@ public class PictureDisposeTask implements Runnable {
//图片创建时间
// picture.setPhotoDateTimestamp(System.currentTimeMillis());
System.out.println("SubmitDateTimestamp1=================>>>>>>>" + pictureSourceResult.getSubmitTime());
System.out.println("SubmitDateTimestamp2=================>>>>>>>" + picture.getSubmitDateTimestamp());
//定位距离
if (StringUtils.isNotBlank(pictureSourceResult.getDistance())) {
picture.setField12(pictureSourceResult.getDistance());
}
//设置图片信息
if (map.get("imgName") != null) {

@ -188,7 +188,7 @@
and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
</if>
<if test="pictureresult != null">
and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}
@ -309,7 +309,7 @@
</if>
<if test="ocpictureid != null">
and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
</if>
<if test="pictureresult != null">
and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}
@ -487,6 +487,147 @@
OR tcp.FROMTASKNAME LIKE CONCAT('%', #{fuzzyRetrieval.value}, '%')
)
</if>
<!-- pic 相关条件检索-->
<if test="tenantname != null">
and pic.tenantname ${tenantname.dataOp} ${tenantname.likestar}
<if test="tenantname.value instanceof java.util.List">
<foreach item="item" collection="tenantname.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!tenantname.value instanceof java.util.List">
#{tenantname.value}
</if>
${tenantname.likeend}
</if>
<if test="projectId != null">
and pic.projectId ${projectId.dataOp} ${projectId.likestar}
<if test="projectId.value instanceof java.util.List">
<foreach item="item" collection="projectId.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!projectId.value instanceof java.util.List">
#{projectId.value}
</if>
${projectId.likeend}
</if>
<if test="projectIdName != null">
and pic.projectIdName ${projectIdName.dataOp} ${projectIdName.likestar}
<if test="projectIdName.value instanceof java.util.List">
<foreach item="item" collection="projectIdName.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!projectIdName.value instanceof java.util.List">
#{projectIdName.value}
</if>
${projectIdName.likeend}
</if>
<if test="planId != null">
and pic.planId ${planId.dataOp} ${planId.likestar}
<if test="planId.value instanceof java.util.List">
<foreach item="item" collection="planId.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!planId.value instanceof java.util.List">
#{planId.value}
</if>
${planId.likeend}
</if>
<if test="planName != null">
and pic.planName ${planName.dataOp} ${planName.likestar}
<if test="planName.value instanceof java.util.List">
<foreach item="item" collection="planName.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!planName.value instanceof java.util.List">
#{planName.value}
</if>
${planName.likeend}
</if>
<if test="releaseArea != null">
and pic.releaseArea ${releaseArea.dataOp} ${releaseArea.likestar}
<if test="releaseArea.value instanceof java.util.List">
<foreach item="item" collection="releaseArea.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!releaseArea.value instanceof java.util.List">
#{releaseArea.value}
</if>
${releaseArea.likeend}
</if>
<if test="field5 != null">
and pic.field5 ${field5.dataOp} ${field5.likestar}
<if test="field5.value instanceof java.util.List">
<foreach item="item" collection="field5.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!field5.value instanceof java.util.List">
#{field5.value}
</if>
${field5.likeend}
</if>
<if test="field3 != null">
and pic.field3 ${field3.dataOp} ${field3.likestar}
<if test="field3.value instanceof java.util.List">
<foreach item="item" collection="field3.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!field3.value instanceof java.util.List">
#{field3.value}
</if>
${field3.likeend}
</if>
<if test="field1 != null">
and pic.field1 ${field1.dataOp} ${field1.likestar}
<if test="field1.value instanceof java.util.List">
<foreach item="item" collection="field1.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!field1.value instanceof java.util.List">
#{field1.value}
</if>
${field1.likeend}
</if>
<if test="field2 != null">
and pic.field2 ${field2.dataOp} ${field2.likestar}
<if test="field2.value instanceof java.util.List">
<foreach item="item" collection="field2.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!field2.value instanceof java.util.List">
#{field2.value}
</if>
${field2.likeend}
</if>
</trim>
</where>
</sql>
@ -561,7 +702,7 @@
<when test="izuptimeStart.rulesOp == 'or' || izuptimeEnd.rulesOp == 'or'">
<if test="izuptimeEnd != null">
and (tcp.FROMUPTIME ${izuptimeStart.dataOp} '${izuptimeStart.value}'
or tcp.FROMUPTIME ${izuptimeEnd.dataOp} '${izuptimeEnd.value}')
or tcp.FROMUPTIME ${izuptimeEnd.dataOp} '${izuptimeEnd.value}')
</if>
</when>
<otherwise>
@ -581,19 +722,19 @@
select tcp.*, pic.field11 reporttime, pic.similarity_score similarityscore from (
select tc.*
from ocr_taskchild_picture tc,
OA_USERFINAL_T uf
OA_USERFINAL_T uf
where tc.ID = uf.FORMID
<if test="thisLoginUserid != null">
and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}
</if>
UNION
select
tc.*
tc.*
from ocr_taskchild_picture tc
where tc.STATES = 5
) as tcp
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
<include refid="Base_Where_union">
</include>
and pic.suspiciousfile = 0
@ -644,44 +785,60 @@
parameterType="java.util.Map">
select tcp.* from (
select tc.*,
uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS,
uf.TASKNO,
uf.TASKINDEX as taskNodeIndex,
op.field6 as fromCustomerLevel,
op.releaseArea as fromCity,
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS,
uf.TASKNO,
uf.TASKINDEX as taskNodeIndex,
op.field6 as fromCustomerLevel,
op.releaseArea as fromCity,
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
from ocr_taskchild_picture tc
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
left join ocr_picture op on tc.PICTUREID = op.ID
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
left join ocr_picture op on tc.PICTUREID = op.ID
where FIND_IN_SET(#{searchassignee}, tc.ASSIGNEE)
and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2
and op.suspiciousfile = 0
and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2
and op.suspiciousfile = 0
<if test="izApprovalStatus != null">
${izApprovalStatus.rulesOp}
( #{izApprovalStatus.value} ${izApprovalStatus.dataOp} COALESCE (uf.STATSHIS
, 1)
)
(
<if test="!izApprovalStatus.value instanceof java.lang.String">
<foreach item="item" collection="izApprovalStatus.value" open="" separator="OR" close="">
#{item} = COALESCE (uf.STATSHIS, 1)
</foreach>
</if>
<if test="izApprovalStatus.value instanceof java.lang.String">
#{izApprovalStatus.value} = COALESCE (uf.STATSHIS, 1)
</if>
)
</if>
UNION
select
tc.*, uf.COMMENTHIS, uf.TASKNAME as TASKNAMEHIS, uf.STATSHIS, uf.TASKNO, uf.TASKINDEX as taskNodeIndex, op.field6 as fromCustomerLevel, op.releaseArea as fromCity, op.is_repeat, tc.is_repeated_nodules as isRepeatedNodules
tc.*, uf.COMMENTHIS, uf.TASKNAME as TASKNAMEHIS, uf.STATSHIS, uf.TASKNO, uf.TASKINDEX as taskNodeIndex, op.field6 as fromCustomerLevel, op.releaseArea as fromCity, op.is_repeat, tc.is_repeated_nodules as isRepeatedNodules
from ocr_taskchild_picture tc, OA_USERAPPROVE_T uf, ocr_picture op
where tc.ID = uf.FORMID
and tc.PICTUREID = op.ID
and op.suspiciousfile = 0
and tc.TENANTID = #{searchtenantid}
and tc.PICTUREID = op.ID
and op.suspiciousfile = 0
and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid}
</if>
<if test="izApprovalStatus != null">
${izApprovalStatus.rulesOp}
( #{izApprovalStatus.value} ${izApprovalStatus.dataOp} COALESCE (uf.STATSHIS
, 1)
)
(
<if test="!izApprovalStatus.value instanceof java.lang.String">
<foreach item="item" collection="izApprovalStatus.value" open="" separator="OR" close="">
#{item} = COALESCE (uf.STATSHIS, 1)
</foreach>
</if>
<if test="izApprovalStatus.value instanceof java.lang.String">
#{izApprovalStatus.value} = COALESCE (uf.STATSHIS, 1)
</if>
)
</if>
) as tcp
<include refid="Base_Where_union">
@ -714,8 +871,16 @@
and op.suspiciousfile = 0
<if test="izApprovalStatus != null">
${izApprovalStatus.rulesOp}
( #{izApprovalStatus.value} ${izApprovalStatus.dataOp} COALESCE (uf.STATSHIS
, 1)
(
<if test="!izApprovalStatus.value instanceof java.lang.String">
<foreach item="item" collection="izApprovalStatus.value" open="" separator="OR" close="">
#{item} = COALESCE (uf.STATSHIS, 1)
</foreach>
</if>
<if test="izApprovalStatus.value instanceof java.lang.String">
#{izApprovalStatus.value} = COALESCE (uf.STATSHIS, 1)
</if>
)
</if>
UNION
@ -730,8 +895,16 @@
</if>
<if test="izApprovalStatus != null ">
${izApprovalStatus.rulesOp}
( #{izApprovalStatus.value} ${izApprovalStatus.dataOp} COALESCE (uf.STATSHIS
, 1)
(
<if test="!izApprovalStatus.value instanceof java.lang.String">
<foreach item="item" collection="izApprovalStatus.value" open="" separator="OR" close="">
#{item} = COALESCE (uf.STATSHIS, 1)
</foreach>
</if>
<if test="izApprovalStatus.value instanceof java.lang.String">
#{izApprovalStatus.value} = COALESCE (uf.STATSHIS, 1)
</if>
)
</if>
) as tcp
@ -764,16 +937,16 @@
<select id="queryExamineApprove" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro">
select tc.*,
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
from ocr_taskchild_picture tc
left join ocr_picture op on tc.PICTUREID = op.ID
left join ocr_picture op on tc.PICTUREID = op.ID
where tc.TENANTID = #{tenantId}
and op.suspiciousfile = 0
and tc.ID IN
<foreach item="formId" collection="formIdList" open="(" separator="," close=")">
#{formId}
</foreach>
and op.suspiciousfile = 0
and tc.ID IN
<foreach item="formId" collection="formIdList" open="(" separator="," close=")">
#{formId}
</foreach>
</select>
<select id="queryPendingApproval" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro">
select tc.*,
@ -799,51 +972,51 @@
<select id="getPictureHistoryList" resultType="cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo">
SELECT distinct t2.ID id,
t2.PICTUREID pictureId,
t2.STATES states,
t2.PROCESSINSTANCEID processInstanceId,
t2.PROCESSDEFINITIONID processDefinitionId,
t2.DEPLOYMENTID deploymentId,
t2.ASSIGNEENAME assigneeName,
t2.ASSIGNEE assignee,
t2.FILEANNEX fileAnnex,
t2.GUIDANG guiDang,
t2.CREATEUSER createUser,
t2.CREATEUSERNAME createUserName,
t2.CREATEDATE createDate,
t2.USERID userId,
t2.USERNAME userName,
t2.FROMTASKID fromTaskId,
t2.FROMTASKNAME fromTaskName,
t2.FROMUSERID fromUserId,
t2.FROMPROJECTID fromProjectId,
t2.FROMPLANID fromPlanId,
t2.FROMUPTIME fromupTime,
t2.FROMSOURCEID fromSourceId,
t2.HAVEPOINTS havePoints,
t2.TASKNAME taskName,
t2.TASKID taskId,
t2.FROMUSERNAME fromUserName,
t2.FROMPROJECTNAME fromProjectName,
t2.FINISHTIME finishTime,
t1.imgUrl,
t1.submit_date_timestamp submitDateTimestamp,
t1.photo_date_timestamp photoDateTimestamp,
t1.similarity_score similarityScore,
t1.server_thumbnail_url serverThumbnailUrl,
IF(EXISTS (SELECT STATSHIS
FROM oa_userapprove_t
WHERE FORMID = t2.ID and STATSHIS = 3 and 'finale_judgment' = #{taskNode}), 3,
IFNULL((SELECT t3.STATSHIS
FROM oa_userapprove_t t3
WHERE t3.FORMID = t2.ID
and t3.TASKINDEX = #{taskNode}
LIMIT 1), 1)) AS historyStates
t2.PICTUREID pictureId,
t2.STATES states,
t2.PROCESSINSTANCEID processInstanceId,
t2.PROCESSDEFINITIONID processDefinitionId,
t2.DEPLOYMENTID deploymentId,
t2.ASSIGNEENAME assigneeName,
t2.ASSIGNEE assignee,
t2.FILEANNEX fileAnnex,
t2.GUIDANG guiDang,
t2.CREATEUSER createUser,
t2.CREATEUSERNAME createUserName,
t2.CREATEDATE createDate,
t2.USERID userId,
t2.USERNAME userName,
t2.FROMTASKID fromTaskId,
t2.FROMTASKNAME fromTaskName,
t2.FROMUSERID fromUserId,
t2.FROMPROJECTID fromProjectId,
t2.FROMPLANID fromPlanId,
t2.FROMUPTIME fromupTime,
t2.FROMSOURCEID fromSourceId,
t2.HAVEPOINTS havePoints,
t2.TASKNAME taskName,
t2.TASKID taskId,
t2.FROMUSERNAME fromUserName,
t2.FROMPROJECTNAME fromProjectName,
t2.FINISHTIME finishTime,
t1.imgUrl,
t1.submit_date_timestamp submitDateTimestamp,
t1.photo_date_timestamp photoDateTimestamp,
t1.similarity_score similarityScore,
t1.server_thumbnail_url serverThumbnailUrl,
IF(EXISTS (SELECT STATSHIS
FROM oa_userapprove_t
WHERE FORMID = t2.ID and STATSHIS = 3 and 'finale_judgment' = #{taskNode}), 3,
IFNULL((SELECT t3.STATSHIS
FROM oa_userapprove_t t3
WHERE t3.FORMID = t2.ID
and t3.TASKINDEX = #{taskNode}
LIMIT 1), 1)) AS historyStates
FROM ocr_picture t1
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
where t1.suspiciousfile = 0
and t1.ID in
and t1.ID in
<foreach collection="pictureIds" open="(" close=")" item="item" separator="," index="index">
#{item}
@ -914,50 +1087,50 @@
<select id="getPackageSimilarityList" resultType="cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo">
SELECT distinct t3.ID id,
t3.PICTUREID pictureId,
t3.STATES states,
t3.PROCESSINSTANCEID processInstanceId,
t3.PROCESSDEFINITIONID processDefinitionId,
t3.DEPLOYMENTID deploymentId,
t3.ASSIGNEENAME assigneeName,
t3.ASSIGNEE assignee,
t3.FILEANNEX fileAnnex,
t3.GUIDANG guiDang,
t3.CREATEUSER createUser,
t3.CREATEUSERNAME createUserName,
t3.CREATEDATE createDate,
t3.USERID userId,
t3.USERNAME userName,
t3.FROMTASKID fromTaskId,
t3.FROMTASKNAME fromTaskName,
t3.FROMUSERID fromUserId,
t3.FROMPROJECTID fromProjectId,
t3.FROMPLANID fromPlanId,
t3.FROMUPTIME fromupTime,
t3.FROMSOURCEID fromSourceId,
t3.HAVEPOINTS havePoints,
t3.TASKNAME taskName,
t3.FROMUSERNAME fromUserName,
t3.FROMPROJECTNAME fromProjectName,
t3.FINISHTIME finishTime,
t3.TASKID taskId,
t2.imgUrl,
t2.submit_date_timestamp submitDateTimestamp,
t2.photo_date_timestamp photoDateTimestamp,
t2.server_thumbnail_url serverThumbnailUrl,
t1.max_similarity maxSimilarity,
COALESCE(
(SELECT t4.STATSHIS
FROM oa_userapprove_t t4
WHERE t4.FORMID = t3.ID
ORDER BY t4.CREATEDATE DESC
LIMIT 1), 1) AS historyStates,
t1.check_duplicate_id
t3.PICTUREID pictureId,
t3.STATES states,
t3.PROCESSINSTANCEID processInstanceId,
t3.PROCESSDEFINITIONID processDefinitionId,
t3.DEPLOYMENTID deploymentId,
t3.ASSIGNEENAME assigneeName,
t3.ASSIGNEE assignee,
t3.FILEANNEX fileAnnex,
t3.GUIDANG guiDang,
t3.CREATEUSER createUser,
t3.CREATEUSERNAME createUserName,
t3.CREATEDATE createDate,
t3.USERID userId,
t3.USERNAME userName,
t3.FROMTASKID fromTaskId,
t3.FROMTASKNAME fromTaskName,
t3.FROMUSERID fromUserId,
t3.FROMPROJECTID fromProjectId,
t3.FROMPLANID fromPlanId,
t3.FROMUPTIME fromupTime,
t3.FROMSOURCEID fromSourceId,
t3.HAVEPOINTS havePoints,
t3.TASKNAME taskName,
t3.FROMUSERNAME fromUserName,
t3.FROMPROJECTNAME fromProjectName,
t3.FINISHTIME finishTime,
t3.TASKID taskId,
t2.imgUrl,
t2.submit_date_timestamp submitDateTimestamp,
t2.photo_date_timestamp photoDateTimestamp,
t2.server_thumbnail_url serverThumbnailUrl,
t1.max_similarity maxSimilarity,
COALESCE(
(SELECT t4.STATSHIS
FROM oa_userapprove_t t4
WHERE t4.FORMID = t3.ID
ORDER BY t4.CREATEDATE DESC
LIMIT 1), 1) AS historyStates,
t1.check_duplicate_id
FROM ocr_check_duplicate_result t1
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
LEFT JOIN ocr_taskchild_picture t3 ON t2.ID = t3.PICTUREID
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
LEFT JOIN ocr_taskchild_picture t3 ON t2.ID = t3.PICTUREID
WHERE t1.check_duplicate_id = #{checkDuplicateId}
and t2.suspiciousfile = 0
and t2.suspiciousfile = 0
<if test="pictureId != null and pictureId != ''">
and t1.picture_id != #{pictureId}
</if>
@ -971,43 +1144,43 @@
<select id="getDubiousfileList" resultType="cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo">
SELECT t2.ID id,
t2.PICTUREID pictureId,
t2.STATES states,
t2.PROCESSINSTANCEID processInstanceId,
t2.PROCESSDEFINITIONID processDefinitionId,
t2.DEPLOYMENTID deploymentId,
t2.ASSIGNEENAME assigneeName,
t2.ASSIGNEE assignee,
t2.FILEANNEX fileAnnex,
t2.GUIDANG guiDang,
t2.CREATEUSER createUser,
t2.CREATEUSERNAME createUserName,
t2.CREATEDATE createDate,
t2.USERID userId,
t2.USERNAME userName,
t2.FROMTASKID fromTaskId,
t2.FROMTASKNAME fromTaskName,
t2.FROMUSERID fromUserId,
t2.FROMPROJECTID fromProjectId,
t2.FROMPLANID fromPlanId,
t2.FROMUPTIME fromupTime,
t2.FROMSOURCEID fromSourceId,
t2.HAVEPOINTS havePoints,
t2.TASKNAME taskName,
t2.TASKID taskId,
t2.FROMUSERNAME fromUserName,
t2.FROMPROJECTNAME fromProjectName,
t2.FINISHTIME finishTime,
t1.imgUrl,
t1.server_thumbnail_url serverThumbnailUrl,
ifnull(t3.STATSHIS, 1) historyStates,
t1.submit_date_timestamp submitDateTimestamp,
t1.photo_date_timestamp photoDateTimestamp,
t1.similarity_score similarityScore
t2.PICTUREID pictureId,
t2.STATES states,
t2.PROCESSINSTANCEID processInstanceId,
t2.PROCESSDEFINITIONID processDefinitionId,
t2.DEPLOYMENTID deploymentId,
t2.ASSIGNEENAME assigneeName,
t2.ASSIGNEE assignee,
t2.FILEANNEX fileAnnex,
t2.GUIDANG guiDang,
t2.CREATEUSER createUser,
t2.CREATEUSERNAME createUserName,
t2.CREATEDATE createDate,
t2.USERID userId,
t2.USERNAME userName,
t2.FROMTASKID fromTaskId,
t2.FROMTASKNAME fromTaskName,
t2.FROMUSERID fromUserId,
t2.FROMPROJECTID fromProjectId,
t2.FROMPLANID fromPlanId,
t2.FROMUPTIME fromupTime,
t2.FROMSOURCEID fromSourceId,
t2.HAVEPOINTS havePoints,
t2.TASKNAME taskName,
t2.TASKID taskId,
t2.FROMUSERNAME fromUserName,
t2.FROMPROJECTNAME fromProjectName,
t2.FINISHTIME finishTime,
t1.imgUrl,
t1.server_thumbnail_url serverThumbnailUrl,
ifnull(t3.STATSHIS, 1) historyStates,
t1.submit_date_timestamp submitDateTimestamp,
t1.photo_date_timestamp photoDateTimestamp,
t1.similarity_score similarityScore
FROM ocr_picture t1
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
LEFT JOIN oa_userapprove_t t3 on t2.ID = t3.FORMID and t3.TASKNAME = '${taskname}'
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
LEFT JOIN oa_userapprove_t t3 on t2.ID = t3.FORMID and t3.TASKNAME = '${taskname}'
where t1.ID in
<foreach collection="pictureIds" open="(" close=")" item="item" separator="," index="index">
#{item}
@ -1016,33 +1189,32 @@
<select id="listFinalTask" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture"
parameterType="java.util.Map">
select distinct tcp.*,
pic.field11 reporttime,
pic.similarity_score similarityscore,
pic.server_thumbnail_url serverThumbnailUrl,
pic.imgUrl imgUrl
select tcp.*,
pic.field11 reporttime,
pic.similarity_score similarityscore,
pic.server_thumbnail_url serverThumbnailUrl,
pic.imgUrl imgUrl,
pic.field3 field3,
pic.planName planchildname,
pic.field14 field14,
pic.is_repeat is_repeat
from ocr_taskchild_picture tcp
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
<include refid="Base_Where_union">
</include>
and tcp.ISFINAIL = 1
and pic.suspiciousfile = 0
<if test="thisLoginUserid != null and isFail == null">
and FIND_IN_SET(#{thisLoginUserid.value}
, tcp.ASSIGNEE)
, tcp.ASSIGNEE)
</if>
<if test="thisLoginUserid != null and isFail != null">
and (FIND_IN_SET(#{thisLoginUserid.value}
, tcp.ASSIGNEE) or
<if test="contractor != null">
if((select count(1) from ocr_contractor_task where tenant_id =#{tenantid.value} and pic.${contractor.value} = contractor and FIND_IN_SET(#{thisLoginUserid.value},task_user_assignee))>1, 1=1,tcp.STATES = 5)
</if>
<if test="contractor == null">
tcp.STATES = 5
</if>
)
, tcp.ASSIGNEE)
or tcp.STATES = 5)
</if>
<if test="fromuptimeStart != null">
and tcp.fromuptime &gt;= ${fromuptimeStart.value}
</if>

Loading…
Cancel
Save