fix:1、解决任务包相似度列表接口取不到相似度值bug;2、任务审批统计接口做审批节点隔离;3、移入可疑文件夹,如果这个任务审批人不是登录用户,则不允许移入可疑文件夹

pull/121/head
DELL 1 year ago
parent de75221301
commit 9496eb6892

@ -83,7 +83,7 @@ public class OcrAiApprovalTools {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
ResultVo toolscount = iocrsearchhistoryservice.toolsTaskApprovalCount(tenantId,userToken.getUserid(),request);
ResultVo toolscount = iocrsearchhistoryservice.toolsTaskApprovalCount(tenantId,userToken,request);
return toolscount;
}

@ -168,6 +168,13 @@ public class OcrTaskchildDubiousFileController {
List<OcrTaskchildDubiousFile> list=new ArrayList<>();
String[] taskchildid1 = pictureid.toString().split(",");
for (String asd:taskchildid1){
//判断当前任务审批人是否是当前登录用户
QueryWrapper<OcrTaskchildPicture> wrapper = new QueryWrapper<>();
wrapper.eq("PICTUREID",asd);
OcrTaskchildPicture one = ocrtaskchildpictureservice.getOne(wrapper);
if(one != null && !one.getAssignee().equals(userToken.getLoginname())){
return ResultVoUtil.error("勾选存在无权限审批的任务,不能添加可疑文件!");
}
QueryWrapper<OcrTaskchildDubiousFile> filewrapper = new QueryWrapper<>();
filewrapper.eq("picture_id",asd).eq("userid",userToken.getUserid());
@ -178,11 +185,6 @@ public class OcrTaskchildDubiousFileController {
ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId));
ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid()));
ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis());
QueryWrapper<OcrTaskchildPicture> wrapper = new QueryWrapper<>();
wrapper.eq("PICTUREID",asd);
OcrTaskchildPicture one = ocrtaskchildpictureservice.getOne(wrapper);
ocrtaskchilddubiousfile.setTaskchildId(one.getId());
UpdateWrapper<OcrPicture> updatewrapper = new UpdateWrapper<>();
@ -198,11 +200,6 @@ public class OcrTaskchildDubiousFileController {
ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId));
ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid()));
ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis());
QueryWrapper<OcrTaskchildPicture> wrapper = new QueryWrapper<>();
wrapper.eq("PICTUREID",asd);
OcrTaskchildPicture one = ocrtaskchildpictureservice.getOne(wrapper);
ocrtaskchilddubiousfile.setTaskchildId(one.getId());
UpdateWrapper<OcrPicture> updatewrapper = new UpdateWrapper<>();

@ -2,6 +2,7 @@ package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro;
import cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -41,6 +42,20 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper<OcrTaskchildPi
* @return
*/
public List<OcrTaskchildPictureAppro> listmytask(Map<String, Object> query);
/**
*
*/
public List<OaUserApproveVo> queryApprovalNode(@Param("userId") String userId);
/**
*
*/
public List<OcrTaskchildPictureAppro> queryPendingApproval(@Param("loginName") String loginName, @Param("tenantId") String tenantId);
/**
*
*/
public List<OcrTaskchildPictureAppro> queryExamineApprove(@Param("tenantId") String tenantId, @Param("id") Long id);
/**
*
* @param query

@ -2,6 +2,7 @@ package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import com.baomidou.mybatisplus.extension.service.IService;
@ -22,7 +23,7 @@ public interface IOcrSearchHistoryService extends IService<OcrSearchHistory> {
ResultVo toolscount(String tenantid, String userId, HttpServletRequest request);
ResultVo toolsTaskApprovalCount(String tenantid, String userId, HttpServletRequest request);
ResultVo toolsTaskApprovalCount(String tenantid, UserToken userToken, HttpServletRequest request);
Map<Object,Object> selectaisp(String userid,String id,Integer nodeType);

@ -113,7 +113,6 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
/**
*
*
* @param page
* @param query
* @return
*/

@ -26,11 +26,13 @@ import cn.jyjz.xiaoyao.ocr.service.IOcrSearchHistoryService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.util.FrontMenuEnum;
import cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.pro.packaged.S;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -131,7 +133,7 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
}
User user = this.userService.getSessionUser(request);
PageUtils pageUtils = new PageUtils();
pageUtils.setPageSize(9999);
pageUtils.setPageSize(9999999);
pageUtils.setCurrPage(1);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = flowTaskService.getMyProcessInstancesNew(user, tenantid, searchQuery.getQuery(), pageUtils);
resultVo = new ResultVo<>();
@ -178,9 +180,10 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
}
@Override
public ResultVo toolsTaskApprovalCount(String tenantid, String userId, HttpServletRequest request) {
public ResultVo toolsTaskApprovalCount(String tenantid, UserToken userToken, HttpServletRequest request) {
ResultVo<Map<String, Integer>> resultVo = null;
String userId = userToken.getUserid();
try {
//系统中记录的ai统计租户id
String counttenantid = iCacheManager.get(CacheConstants.TOOLSCOUNT_TENANTID_MODEL_NAME,tenantid+"_"+userId);
@ -191,46 +194,79 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
//用户登录信息写入缓存
iCacheManager.put(CacheConstants.TOOLSCOUNT_TENANTID_MODEL_NAME,tenantid+"_"+userId,"true",CacheConstants.TOOLSCOUNT_TENANTID_CACHE_TIME);
SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_");
String taskName = request.getParameter("keyword");
if (StringUtils.isNotBlank(taskName)) {
searchQuery.addLike("fromtaskname", taskName);
List<OaUserApproveVo> oaUserApproveVoList = taskchildPictureMybatisDao.queryApprovalNode(userId);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = new ArrayList<>();
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew1 = new ArrayList<>();
if (oaUserApproveVoList.size() > 0) {
Map<Long, OaUserApproveVo> formIdToVoMap = new HashMap<>();
for (OaUserApproveVo vo : oaUserApproveVoList) {
Long formId = vo.getFormId();
Integer taskNode = vo.getTaskNode();
if (!formIdToVoMap.containsKey(formId) || taskNode < formIdToVoMap.get(formId).getTaskNode()) {
formIdToVoMap.put(formId, vo);
}
}
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid);
for (Long formId : formIdToVoMap.keySet()) {
// 判断 formId 是否在 ocrTaskchildPictureApproList 中存在
boolean containsFormId = false;
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
if (Long.parseLong(ocrTaskchildPictureAppro.getId()) == formId) {
containsFormId = true;
ocrTaskchildPictureApproListNew1.add(ocrTaskchildPictureAppro);
// 如果 formId 在 formIdToVoMap 中存在,则将 formId 对应的 STATSHIS 赋值给 ocrTaskchildPictureAppro 的 STATSHIS 字段
ocrTaskchildPictureAppro.setStatshis(formIdToVoMap.get(formId).getStatsHis());
break;
}
}
if(!containsFormId){
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew = taskchildPictureMybatisDao.queryExamineApprove(tenantid,formId);
if(ocrTaskchildPictureApproListNew.size()>0){
OcrTaskchildPictureAppro ocrTaskchildPictureAppro = ocrTaskchildPictureApproListNew.get(0);
ocrTaskchildPictureAppro.setStatshis(formIdToVoMap.get(formId).getStatsHis());
ocrTaskchildPictureApproList.add(ocrTaskchildPictureAppro);
}
}
}
}else {
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid);
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
ocrTaskchildPictureAppro.setStatshis(1);
}
}
User user = this.userService.getSessionUser(request);
PageUtils pageUtils = new PageUtils();
pageUtils.setPageSize(9999);
pageUtils.setCurrPage(1);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = flowTaskService.getMyProcessInstancesNew(user, tenantid, searchQuery.getQuery(), pageUtils);
System.out.println("ocrTaskchildPictureApproListNew"+ocrTaskchildPictureApproListNew1.size());
resultVo = new ResultVo<>();
int pendingApprovalCount = 0; // 待审批的数量
int approvedCount = 0; // 通过的数量
int notGoCount = 0; // 不通过的数量
int repeat = 0; // 重复数量
int repeatedNodulesCount = 0; //重复小结数
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
if(ocrTaskchildPictureAppro.getIsRepeat() != null && ocrTaskchildPictureAppro.getIsRepeat() == 1){
repeat++;
}
if(ocrTaskchildPictureAppro.getIsRepeatedNodules() !=null && ocrTaskchildPictureAppro.getIsRepeatedNodules() == 1){
repeatedNodulesCount++;
}
if (ocrTaskchildPictureAppro.getStatshis() != null) {
switch (ocrTaskchildPictureAppro.getStatshis()) {
case 1:
pendingApprovalCount++;
break;
case 2:
approvedCount++;
break;
case 3:
notGoCount++;
break;
default:
break;
if(ocrTaskchildPictureApproList.size()>0){
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
if(ocrTaskchildPictureAppro.getIsRepeat() != null && ocrTaskchildPictureAppro.getIsRepeat() == 1){
repeat++;
}
if(ocrTaskchildPictureAppro.getIsRepeatedNodules() !=null && ocrTaskchildPictureAppro.getIsRepeatedNodules() == 1){
repeatedNodulesCount++;
}
if (ocrTaskchildPictureAppro.getStatshis() != null) {
switch (ocrTaskchildPictureAppro.getStatshis()) {
case 1:
pendingApprovalCount++;
break;
case 2:
approvedCount++;
break;
case 3:
notGoCount++;
break;
default:
break;
}
} else {
//暂定,后期修改
pendingApprovalCount++;
}
} else {
//暂定,后期修改
pendingApprovalCount++;
}
}

@ -31,6 +31,7 @@ import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.alibaba.fastjson.JSON;

@ -85,9 +85,9 @@ public class OcrUsersearchchildServiceImpl extends BaseServiceImpl<OcrUsersearch
vo.setIzupuser(ocrUsersearchchild.getSearchvalue());
}
// if(SearchConfigEnum.SIMISEARCH.getId().equals(searchfield)){
// vo.setIzsimilarity(ocrUsersearchchild.getSearchvalue());
// }
if(SearchConfigEnum.SIMISEARCH.getId().equals(searchfield)){
vo.setIzsimilarity(ocrUsersearchchild.getSearchvalue());
}
if(SearchConfigEnum.CLASSISEARCH.getId().equals(searchfield)){
vo.setIzshow(ocrUsersearchchild.getSearchvalue());

@ -0,0 +1,39 @@
package cn.jyjz.xiaoyao.ocr.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "字段信息", title = "字段信息")
public class OaUserApproveVo implements Serializable {
private static final long serialVersionUID = 8088861709460050761L;
@Schema(description = "主键")
private Long id;
@Schema(description = "用户")
private Long userId;
@Schema(description = "任务id")
private Long formId;
@Schema(description = "审批节点")
private Integer taskNode;
@Schema(description = "审批节点名称")
private String taskName;
@Schema(description = "审批状态")
private Integer statsHis;
}

@ -719,8 +719,38 @@
<include refid="Base_Where_Union_New">
</include>
</select>
<select id="queryApprovalNode" resultType="cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo">
SELECT ou.ID as id,
ou.USERID as userId,
ou.FORMID as formId,
ou.TASKINDEX as taskNode,
ou.TASKNAME as taskName,
ou.STATSHIS as statsHis
FROM oa_userapprove_t ou
WHERE USERID = #{userId}
</select>
<select id="queryExamineApprove" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro">
select tc.*,
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
from ocr_taskchild_picture tc
left join ocr_picture op on tc.PICTUREID = op.ID
where tc.TENANTID = #{tenantId}
and op.suspiciousfile = 0
and tc.ID = #{id}
</select>
<select id="queryPendingApproval" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro">
select tc.*,
op.is_repeat,
tc.is_repeated_nodules as isRepeatedNodules
from ocr_taskchild_picture tc
left join ocr_picture op on tc.PICTUREID = op.ID
where FIND_IN_SET(#{loginName}, tc.ASSIGNEE)
and tc.TENANTID = #{tenantId}
and tc.STATES = 2
and op.suspiciousfile = 0
</select>
<select id="selectocpicture" resultType="String">
SELECT OCPICTUREID
FROM ocr_taskchild_picture
@ -976,6 +1006,11 @@
<if test="page.sortname != 'states'">
order by pic.${page.sortname} ${page.sortorder}
</if>
<!-- <if test="page.sortname != 'states'">-->
<!-- order by CONVERT(LEFT(pic.${page.sortname}, 1) USING gbk) ${page.sortorder},-->
<!-- CONVERT(SUBSTRING(pic.${page.sortname}, 2, 1) USING gbk) ${page.sortorder},-->
<!-- CONVERT(SUBSTRING(pic.${page.sortname}, 3, 1) USING gbk) ${page.sortorder}-->
<!-- </if>-->
</if>
limit ${page.start}, ${page.Pagesize}
</if>

Loading…
Cancel
Save