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 (taskchildPicture!=null){
//2.任务审核鉴权,(确定由那个用户进行审核)
auditMap = ocrPictureService.userAuditRights(taskchildPicture.getPictureid(),candidateUsers);
if (auditMap!=null){
availableUsers = auditMap.get(UserAuditTypeEnum.AvailableUser);
defaultUsers = auditMap.get(UserAuditTypeEnum.DefaultUser);
}
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())));
}
} 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:
* 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,12 +1,23 @@
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:
@ -16,4 +27,61 @@ import cn.jyjz.xiaoyao.ocr.service.OcrContractorTaskService;
@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) {

@ -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>
@ -662,8 +803,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
@ -679,8 +828,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
@ -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
@ -1016,11 +1189,15 @@
<select id="listFinalTask" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture"
parameterType="java.util.Map">
select distinct tcp.*,
select tcp.*,
pic.field11 reporttime,
pic.similarity_score similarityscore,
pic.server_thumbnail_url serverThumbnailUrl,
pic.imgUrl imgUrl
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
@ -1034,15 +1211,10 @@
</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