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)); 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; return toolscount;
} }

@ -168,6 +168,13 @@ public class OcrTaskchildDubiousFileController {
List<OcrTaskchildDubiousFile> list=new ArrayList<>(); List<OcrTaskchildDubiousFile> list=new ArrayList<>();
String[] taskchildid1 = pictureid.toString().split(","); String[] taskchildid1 = pictureid.toString().split(",");
for (String asd:taskchildid1){ 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<>(); QueryWrapper<OcrTaskchildDubiousFile> filewrapper = new QueryWrapper<>();
filewrapper.eq("picture_id",asd).eq("userid",userToken.getUserid()); filewrapper.eq("picture_id",asd).eq("userid",userToken.getUserid());
@ -178,11 +185,6 @@ public class OcrTaskchildDubiousFileController {
ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId)); ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId));
ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid())); ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid()));
ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis()); ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis());
QueryWrapper<OcrTaskchildPicture> wrapper = new QueryWrapper<>();
wrapper.eq("PICTUREID",asd);
OcrTaskchildPicture one = ocrtaskchildpictureservice.getOne(wrapper);
ocrtaskchilddubiousfile.setTaskchildId(one.getId()); ocrtaskchilddubiousfile.setTaskchildId(one.getId());
UpdateWrapper<OcrPicture> updatewrapper = new UpdateWrapper<>(); UpdateWrapper<OcrPicture> updatewrapper = new UpdateWrapper<>();
@ -198,11 +200,6 @@ public class OcrTaskchildDubiousFileController {
ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId)); ocrtaskchilddubiousfile.setTenantid(Long.parseLong(tenantId));
ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid())); ocrtaskchilddubiousfile.setUserid(Long.parseLong(userToken.getUserid()));
ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis()); ocrtaskchilddubiousfile.setCreatedate(System.currentTimeMillis());
QueryWrapper<OcrTaskchildPicture> wrapper = new QueryWrapper<>();
wrapper.eq("PICTUREID",asd);
OcrTaskchildPicture one = ocrtaskchildpictureservice.getOne(wrapper);
ocrtaskchilddubiousfile.setTaskchildId(one.getId()); ocrtaskchilddubiousfile.setTaskchildId(one.getId());
UpdateWrapper<OcrPicture> updatewrapper = new UpdateWrapper<>(); 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.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro; 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.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo; import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -41,6 +42,20 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper<OcrTaskchildPi
* @return * @return
*/ */
public List<OcrTaskchildPictureAppro> listmytask(Map<String, Object> query); 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 * @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.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory; import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import com.baomidou.mybatisplus.extension.service.IService; 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 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); Map<Object,Object> selectaisp(String userid,String id,Integer nodeType);

@ -113,7 +113,6 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
/** /**
* *
* *
* @param page
* @param query * @param query
* @return * @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.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.util.FrontMenuEnum; import cn.jyjz.xiaoyao.ocr.util.FrontMenuEnum;
import cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo; import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.pro.packaged.S;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -131,7 +133,7 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
} }
User user = this.userService.getSessionUser(request); User user = this.userService.getSessionUser(request);
PageUtils pageUtils = new PageUtils(); PageUtils pageUtils = new PageUtils();
pageUtils.setPageSize(9999); pageUtils.setPageSize(9999999);
pageUtils.setCurrPage(1); pageUtils.setCurrPage(1);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = flowTaskService.getMyProcessInstancesNew(user, tenantid, searchQuery.getQuery(), pageUtils); List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = flowTaskService.getMyProcessInstancesNew(user, tenantid, searchQuery.getQuery(), pageUtils);
resultVo = new ResultVo<>(); resultVo = new ResultVo<>();
@ -178,9 +180,10 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
} }
@Override @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; ResultVo<Map<String, Integer>> resultVo = null;
String userId = userToken.getUserid();
try { try {
//系统中记录的ai统计租户id //系统中记录的ai统计租户id
String counttenantid = iCacheManager.get(CacheConstants.TOOLSCOUNT_TENANTID_MODEL_NAME,tenantid+"_"+userId); 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); iCacheManager.put(CacheConstants.TOOLSCOUNT_TENANTID_MODEL_NAME,tenantid+"_"+userId,"true",CacheConstants.TOOLSCOUNT_TENANTID_CACHE_TIME);
SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_"); List<OaUserApproveVo> oaUserApproveVoList = taskchildPictureMybatisDao.queryApprovalNode(userId);
String taskName = request.getParameter("keyword"); List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = new ArrayList<>();
if (StringUtils.isNotBlank(taskName)) { List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew1 = new ArrayList<>();
searchQuery.addLike("fromtaskname", taskName); 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); System.out.println("ocrTaskchildPictureApproListNew"+ocrTaskchildPictureApproListNew1.size());
PageUtils pageUtils = new PageUtils();
pageUtils.setPageSize(9999);
pageUtils.setCurrPage(1);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = flowTaskService.getMyProcessInstancesNew(user, tenantid, searchQuery.getQuery(), pageUtils);
resultVo = new ResultVo<>(); resultVo = new ResultVo<>();
int pendingApprovalCount = 0; // 待审批的数量 int pendingApprovalCount = 0; // 待审批的数量
int approvedCount = 0; // 通过的数量 int approvedCount = 0; // 通过的数量
int notGoCount = 0; // 不通过的数量 int notGoCount = 0; // 不通过的数量
int repeat = 0; // 重复数量 int repeat = 0; // 重复数量
int repeatedNodulesCount = 0; //重复小结数 int repeatedNodulesCount = 0; //重复小结数
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) { if(ocrTaskchildPictureApproList.size()>0){
if(ocrTaskchildPictureAppro.getIsRepeat() != null && ocrTaskchildPictureAppro.getIsRepeat() == 1){ for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
repeat++; if(ocrTaskchildPictureAppro.getIsRepeat() != null && ocrTaskchildPictureAppro.getIsRepeat() == 1){
} repeat++;
if(ocrTaskchildPictureAppro.getIsRepeatedNodules() !=null && ocrTaskchildPictureAppro.getIsRepeatedNodules() == 1){ }
repeatedNodulesCount++; if(ocrTaskchildPictureAppro.getIsRepeatedNodules() !=null && ocrTaskchildPictureAppro.getIsRepeatedNodules() == 1){
} repeatedNodulesCount++;
if (ocrTaskchildPictureAppro.getStatshis() != null) { }
switch (ocrTaskchildPictureAppro.getStatshis()) { if (ocrTaskchildPictureAppro.getStatshis() != null) {
case 1: switch (ocrTaskchildPictureAppro.getStatshis()) {
pendingApprovalCount++; case 1:
break; pendingApprovalCount++;
case 2: break;
approvedCount++; case 2:
break; approvedCount++;
case 3: break;
notGoCount++; case 3:
break; notGoCount++;
default: break;
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.OcrPictureInfoService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; 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.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo; import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;

@ -85,9 +85,9 @@ public class OcrUsersearchchildServiceImpl extends BaseServiceImpl<OcrUsersearch
vo.setIzupuser(ocrUsersearchchild.getSearchvalue()); vo.setIzupuser(ocrUsersearchchild.getSearchvalue());
} }
// if(SearchConfigEnum.SIMISEARCH.getId().equals(searchfield)){ if(SearchConfigEnum.SIMISEARCH.getId().equals(searchfield)){
// vo.setIzsimilarity(ocrUsersearchchild.getSearchvalue()); vo.setIzsimilarity(ocrUsersearchchild.getSearchvalue());
// } }
if(SearchConfigEnum.CLASSISEARCH.getId().equals(searchfield)){ if(SearchConfigEnum.CLASSISEARCH.getId().equals(searchfield)){
vo.setIzshow(ocrUsersearchchild.getSearchvalue()); 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 refid="Base_Where_Union_New">
</include> </include>
</select> </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 id="selectocpicture" resultType="String">
SELECT OCPICTUREID SELECT OCPICTUREID
FROM ocr_taskchild_picture FROM ocr_taskchild_picture
@ -976,6 +1006,11 @@
<if test="page.sortname != 'states'"> <if test="page.sortname != 'states'">
order by pic.${page.sortname} ${page.sortorder} order by pic.${page.sortname} ${page.sortorder}
</if> </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> </if>
limit ${page.start}, ${page.Pagesize} limit ${page.start}, ${page.Pagesize}
</if> </if>

Loading…
Cancel
Save