fix:优化任务审批统计接口做审批节点隔离;ai统计弹窗实现和任务审批统计接口相同功能 #126

Merged
cuihaojie merged 1 commits from fix/Task_statistics into test 1 year ago

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

@ -50,12 +50,12 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper<OcrTaskchildPi
/** /**
* *
*/ */
public List<OcrTaskchildPictureAppro> queryPendingApproval(@Param("loginName") String loginName, @Param("tenantId") String tenantId); public List<OcrTaskchildPictureAppro> queryPendingApproval(@Param("loginName") String loginName, @Param("tenantId") String tenantId, @Param("taskNode") String taskNode);
/** /**
* *
*/ */
public List<OcrTaskchildPictureAppro> queryExamineApprove(@Param("tenantId") String tenantId, @Param("id") Long id); public List<OcrTaskchildPictureAppro> queryExamineApprove(@Param("tenantId") String tenantId, @Param("formIdList") List<Long> formIdList);
/** /**
* *
* @param query * @param query

@ -21,7 +21,7 @@ import java.util.Map;
public interface IOcrSearchHistoryService extends IService<OcrSearchHistory> { public interface IOcrSearchHistoryService extends IService<OcrSearchHistory> {
Map<Object, List<Map<String,String>>> selectsearch(String search, String assignee, String userId, String tenantId); Map<Object, List<Map<String,String>>> selectsearch(String search, String assignee, String userId, String tenantId);
ResultVo toolscount(String tenantid, String userId, HttpServletRequest request); ResultVo toolscount(String tenantid, UserToken userToken, HttpServletRequest request);
ResultVo toolsTaskApprovalCount(String tenantid, UserToken userToken, HttpServletRequest request); ResultVo toolsTaskApprovalCount(String tenantid, UserToken userToken, HttpServletRequest request);

@ -113,8 +113,9 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
} }
@Override @Override
public ResultVo toolscount(String tenantid, String userId, HttpServletRequest request) { public ResultVo toolscount(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
@ -126,16 +127,42 @@ 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)) { //定义第一审批节点
searchQuery.addLike("fromtaskname", taskName); String taskNodeOne = "";
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);
}
}
//获取该用户第一节点
Iterator<Map.Entry<Long, OaUserApproveVo>> iterator = formIdToVoMap.entrySet().iterator();
Map.Entry<Long, OaUserApproveVo> firstEntry = iterator.next();
taskNodeOne = Integer.toString(firstEntry.getValue().getTaskNode());
//获取已经审批的任务ID
List<Long> formIdList = new ArrayList<>(formIdToVoMap.keySet());
//查询该用户第一节点所有待审任务列表
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid,taskNodeOne);
//查询第一节点已经审批的任务列表数据
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew = taskchildPictureMybatisDao.queryExamineApprove(tenantid,formIdList);
if(ocrTaskchildPictureApproListNew.size()>0){
for(OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproListNew){
OaUserApproveVo oaUserApproveVo = formIdToVoMap.get(Long.parseLong(ocrTaskchildPictureAppro.getId()));
ocrTaskchildPictureAppro.setStatshis(oaUserApproveVo.getStatsHis());
ocrTaskchildPictureApproList.add(ocrTaskchildPictureAppro);
}
}
}else {
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid,taskNodeOne);
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
ocrTaskchildPictureAppro.setStatshis(1);
}
} }
User user = this.userService.getSessionUser(request);
PageUtils pageUtils = new PageUtils();
pageUtils.setPageSize(9999999);
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; // 通过的数量
@ -196,7 +223,8 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
List<OaUserApproveVo> oaUserApproveVoList = taskchildPictureMybatisDao.queryApprovalNode(userId); List<OaUserApproveVo> oaUserApproveVoList = taskchildPictureMybatisDao.queryApprovalNode(userId);
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = new ArrayList<>(); List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproList = new ArrayList<>();
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew1 = new ArrayList<>(); //定义第一审批节点
String taskNodeOne = "";
if (oaUserApproveVoList.size() > 0) { if (oaUserApproveVoList.size() > 0) {
Map<Long, OaUserApproveVo> formIdToVoMap = new HashMap<>(); Map<Long, OaUserApproveVo> formIdToVoMap = new HashMap<>();
for (OaUserApproveVo vo : oaUserApproveVoList) { for (OaUserApproveVo vo : oaUserApproveVoList) {
@ -206,35 +234,29 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
formIdToVoMap.put(formId, vo); formIdToVoMap.put(formId, vo);
} }
} }
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid); //获取该用户第一节点
for (Long formId : formIdToVoMap.keySet()) { Iterator<Map.Entry<Long, OaUserApproveVo>> iterator = formIdToVoMap.entrySet().iterator();
// 判断 formId 是否在 ocrTaskchildPictureApproList 中存在 Map.Entry<Long, OaUserApproveVo> firstEntry = iterator.next();
boolean containsFormId = false; taskNodeOne = Integer.toString(firstEntry.getValue().getTaskNode());
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) { //获取已经审批的任务ID
if (Long.parseLong(ocrTaskchildPictureAppro.getId()) == formId) { List<Long> formIdList = new ArrayList<>(formIdToVoMap.keySet());
containsFormId = true; //查询该用户第一节点所有待审任务列表
ocrTaskchildPictureApproListNew1.add(ocrTaskchildPictureAppro); ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid,taskNodeOne);
// 如果 formId 在 formIdToVoMap 中存在,则将 formId 对应的 STATSHIS 赋值给 ocrTaskchildPictureAppro 的 STATSHIS 字段 //查询第一节点已经审批的任务列表数据
ocrTaskchildPictureAppro.setStatshis(formIdToVoMap.get(formId).getStatsHis()); List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew = taskchildPictureMybatisDao.queryExamineApprove(tenantid,formIdList);
break; if(ocrTaskchildPictureApproListNew.size()>0){
} for(OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproListNew){
} OaUserApproveVo oaUserApproveVo = formIdToVoMap.get(Long.parseLong(ocrTaskchildPictureAppro.getId()));
if(!containsFormId){ ocrTaskchildPictureAppro.setStatshis(oaUserApproveVo.getStatsHis());
List<OcrTaskchildPictureAppro> ocrTaskchildPictureApproListNew = taskchildPictureMybatisDao.queryExamineApprove(tenantid,formId); ocrTaskchildPictureApproList.add(ocrTaskchildPictureAppro);
if(ocrTaskchildPictureApproListNew.size()>0){
OcrTaskchildPictureAppro ocrTaskchildPictureAppro = ocrTaskchildPictureApproListNew.get(0);
ocrTaskchildPictureAppro.setStatshis(formIdToVoMap.get(formId).getStatsHis());
ocrTaskchildPictureApproList.add(ocrTaskchildPictureAppro);
}
} }
} }
}else { }else {
ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid); ocrTaskchildPictureApproList = taskchildPictureMybatisDao.queryPendingApproval(userToken.getLoginname(),tenantid,taskNodeOne);
for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) { for (OcrTaskchildPictureAppro ocrTaskchildPictureAppro : ocrTaskchildPictureApproList) {
ocrTaskchildPictureAppro.setStatshis(1); ocrTaskchildPictureAppro.setStatshis(1);
} }
} }
System.out.println("ocrTaskchildPictureApproListNew"+ocrTaskchildPictureApproListNew1.size());
resultVo = new ResultVo<>(); resultVo = new ResultVo<>();
int pendingApprovalCount = 0; // 待审批的数量 int pendingApprovalCount = 0; // 待审批的数量
int approvedCount = 0; // 通过的数量 int approvedCount = 0; // 通过的数量

@ -738,7 +738,10 @@
left join ocr_picture op on tc.PICTUREID = op.ID left join ocr_picture op on tc.PICTUREID = op.ID
where tc.TENANTID = #{tenantId} where tc.TENANTID = #{tenantId}
and op.suspiciousfile = 0 and op.suspiciousfile = 0
and tc.ID = #{id} and tc.ID IN
<foreach item="formId" collection="formIdList" open="(" separator="," close=")">
#{formId}
</foreach>
</select> </select>
<select id="queryPendingApproval" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro"> <select id="queryPendingApproval" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro">
select tc.*, select tc.*,
@ -749,6 +752,9 @@
where FIND_IN_SET(#{loginName}, tc.ASSIGNEE) where FIND_IN_SET(#{loginName}, tc.ASSIGNEE)
and tc.TENANTID = #{tenantId} and tc.TENANTID = #{tenantId}
and tc.STATES = 2 and tc.STATES = 2
<if test="taskNode != null and taskNode != ''">
and tc.TASKNODE = #{taskNode}
</if>
and op.suspiciousfile = 0 and op.suspiciousfile = 0
</select> </select>
<select id="selectocpicture" resultType="String"> <select id="selectocpicture" resultType="String">

Loading…
Cancel
Save