From 1b0a0efa297622173307c9f88d630ad59a5e5d2b Mon Sep 17 00:00:00 2001 From: sunchenliang <2532527871@qq.com> Date: Tue, 16 Apr 2024 23:57:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=8A=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlowTaskServiceImpl.java | 36 +++++++++++-------- .../OcrTaskchildPictureController.java | 3 +- .../OcrTaskchildPictureMybatisDao.java | 2 +- .../service/OcrTaskchildPictureService.java | 5 ++- .../impl/OcrTaskchildPictureServiceImpl.java | 36 +++++++++---------- .../mapper/oa/OcrTaskchildPictureMapper.xml | 5 +-- 6 files changed, 45 insertions(+), 42 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java index c37eed68..bf1b5a6b 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java @@ -459,7 +459,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask variables.put("approvd", approve.getResult()); OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId())); if (approve.getResult()) { - disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve,approve.getDeptid()); + disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve, approve.getDeptid()); } else { disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve); @@ -480,26 +480,35 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask * 处理审批成功任务 */ private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map variables, - OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve,String deptid) throws Exception { + OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve, String deptid) throws Exception { //进入下一个节点 taskService.complete(task.getId(), variables); - updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition,deptid); + updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition, deptid); Department department = departmentService.getOne(new LambdaQueryWrapper().eq(Department::getDeptno, deptid)); IFormCustomService iFormCustomService = SpringUtils.getBean(department.getServicename()); FlowModelVO formData = iFormCustomService.getForm(formId); List taskList = this.nowRunTask(formData.getProcessInstanceId(), formData.getProcessdefinitionid()); + OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId)); Task taskData = null; if (null != taskList && !taskList.isEmpty()) { + if (taskList.size() > 1) { + List taskIds = taskList.stream().map(Task::getId).collect(Collectors.toList()); + List taskNames = taskList.stream().map(Task::getName).collect(Collectors.toList()); + childPicture.setTaskId(String.join(",", taskIds)); + childPicture.setTaskname(String.join(",", taskNames)); + }else{ + childPicture.setTaskId(taskData.getId()); + childPicture.setTaskname(taskData.getName()); + } taskData = taskList.get(0); } - OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId)); - childPicture.setTaskNode(taskData.getDescription()); if (ObjectUtils.isEmpty(taskData)) { model.setFinishtime(System.currentTimeMillis()); model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END); OcrPicture picture = ocrPictureService.getById(model.getPictureid()); ocrTaskchildPictureService.sendFlowTaskResult(childPicture, picture, approve); } else { + childPicture.setTaskNode(taskData.getDescription()); //判断节点上的描述字段,是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录 if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) { childPicture.setIsFinal(1); @@ -507,8 +516,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask userFinalService.save(user.getId().toString(), formId); } this.sendMsg(childPicture, userToken); - childPicture.setTaskId(taskData.getId()); - childPicture.setTaskname(taskData.getName()); + } ocrTaskchildPictureService.updateById(childPicture); //增加未查看记录 @@ -594,10 +602,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask * @param processDefinition */ public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition - processDefinition,String deptid) { + processDefinition, String deptid) { //如果是多个候选人或者是候选组,做任务拾取 - FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId,deptid); + FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId, deptid); if (null != flowTaskCompleteVO) { @@ -686,7 +694,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask * * @param processInstanceId */ - public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid) { + public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId, String deptid) { FlowTaskCompleteVO flowTaskCompleteVO = null; BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); @@ -723,7 +731,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask //发起人员登录账号 String startUserId = hi.getStartUserId(); //通过候选组主键,查询审批人员信息,并自动拾取 - loginuser = candidateuserService.getClaimUser(startUserId, groupid,deptid); + loginuser = candidateuserService.getClaimUser(startUserId, groupid, deptid); if (StringUtils.isNotBlank(loginuser)) { taskService.claim(task.getId(), loginuser); } @@ -1780,7 +1788,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } - public ResultVo removeTask(String fromid, String taskid,String deptid) { + public ResultVo removeTask(String fromid, String taskid, String deptid) { // 获取当前任务 OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); @@ -1799,7 +1807,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask String historyProcessDefinitionId = terminatedInstances.get(0).getProcessDefinitionId(); boolean isStart = iFlowInstanceService.startProcessInstanceById(historyProcessDefinitionId, ocrTaskchildPicture.getCreateusername(), - ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid); + ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(), deptid); if (isStart) { ResultVoUtil.success(); @@ -1819,7 +1827,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid()); boolean isStart = iFlowInstanceService.startProcessInstanceById(task.getProcessDefinitionId(), ocrTaskchildPicture.getCreateusername(), - ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid); + ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(), deptid); if (isStart) { ResultVoUtil.success(); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java index 116c58b0..0e2c1c72 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java @@ -383,9 +383,10 @@ public class OcrTaskchildPictureController extends BaseController { @RequestParam(name = "orderType") String orderType, @RequestParam(name = "orderName") String orderName, @RequestParam(name = "pictureId") String pictureId, + @RequestParam(name = "taskNode") String taskNode, HttpServletRequest request) { UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); - Page similarityList = ocrTaskchildPictureService.getSimilarityList(pageNo, pageSize, pictureId, orderType, orderName,userToken); + Page similarityList = ocrTaskchildPictureService.getSimilarityList(pageNo, pageSize, pictureId, orderType, orderName,userToken,taskNode); return ResultVoUtil.success(similarityList); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java index de555ec9..249872c4 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java @@ -51,7 +51,7 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper getPictureHistoryList(@Param("pictureIds") List pictureIds, @Param("pictureId") String pictureId); + List getPictureHistoryList(@Param("pictureIds") List pictureIds, @Param("pictureId") String pictureId, @Param("taskNode") String taskNode); List getDubiousfileList(@Param("pictureIds") List pictureIds, @Param("taskname") String taskname); PictureDetailVo getPictureDetail(String pictureId); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java index 7e31b225..adfa1b24 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java @@ -16,7 +16,6 @@ import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; /** * 业务层 @@ -143,11 +142,11 @@ public interface OcrTaskchildPictureService extends BaseService query); - List getPictureHistoryList(List pictureIds, String taskname); + List getPictureHistoryList(List pictureIds, String taskname,String taskNode); PictureDetailVo getPictureDetail(String pictureId, UserToken userToken); - Page getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken); + Page getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken, String taskNode); Page getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java index e4c9955e..e8c97480 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java @@ -1,7 +1,6 @@ package cn.jyjz.xiaoyao.ocr.service.impl; import cn.hutool.core.util.ObjectUtil; -import cn.jyjz.flowable.common.ProcessConstant; import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.domain.vo.FlowModelVO; import cn.jyjz.flowable.entity.FlowApprove; @@ -16,14 +15,9 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; -import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; -import cn.jyjz.xiaoyao.oa.from.service.CategoryService; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; -import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; -import cn.jyjz.xiaoyao.ocr.api.utils.ApiHelper; -import cn.jyjz.xiaoyao.ocr.api.utils.RequestData; import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao; import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureDuplicateHis; @@ -32,7 +26,6 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro; import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto; import cn.jyjz.xiaoyao.ocr.dto.FlowResultDto; -import cn.jyjz.xiaoyao.ocr.dto.ResultDto; import cn.jyjz.xiaoyao.ocr.dto.UserapproveDto; import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService; import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService; @@ -53,8 +46,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.flowable.task.api.Task; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; @@ -426,13 +417,20 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl taskList = iFlowTaskService.nowRunTask(ocrTaskchildPicture.getProcessinstanceid(), ocrTaskchildPicture.getProcessdefinitionid()); - if (null != taskList && !taskList.isEmpty()) { - ocrTaskchildPicture.setTaskId(taskList.get(0).getId()); + String taskId = ocrTaskchildPicture.getTaskId(); + String assignee = ocrTaskchildPicture.getAssignee(); + if(taskId.contains(",")){ + String[] split = assignee.split(","); + String[] taskIds = taskId.split(","); + String[] taskNames = ocrTaskchildPicture.getTaskname().split(","); + + for (int i = 0; i < split.length; i++) { + if(split[i].equals(userToken.getLoginname())){ + ocrTaskchildPicture.setTaskId(taskIds[i]); + ocrTaskchildPicture.setTaskname(taskNames[i]); + } + } } - //获取当前真假标记 ocrTaskchildPicture.setIztrueorfalse(ocrPicture.getIztrueorfalse()); //是否已经审批 @@ -664,8 +662,8 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl getPictureHistoryList(List pictureIds, String pictureId) { - return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds, pictureId); + public List getPictureHistoryList(List pictureIds, String pictureId,String taskNode) { + return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds, pictureId,taskNode); } @Override @@ -684,13 +682,13 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken) { + public Page getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken, String taskNode) { OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper().eq(OcrPictureDuplicateHis::getPictureId, pictureId)); Page objectPage = new Page<>(); if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) { JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson()); Set pictureIds = jsonObject.keySet(); - List taskChildPicturesOld = this.getPictureHistoryList(new ArrayList<>(pictureIds), pictureId); + List taskChildPicturesOld = this.getPictureHistoryList(new ArrayList<>(pictureIds), pictureId,taskNode); List taskChildPictures = new ArrayList<>(); for (OcrTaskChildPictureVo taskChildPicture : taskChildPicturesOld) { if(taskChildPicture.getPictureId()!=null){ diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml index 5a31b4a0..b4743d56 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml @@ -766,10 +766,7 @@ IFNULL((SELECT t3.STATSHIS FROM oa_userapprove_t t3 WHERE t3.FORMID = t2.ID - and t3.TASKINDEX = - (SELECT TASKNODE - FROM ocr_taskchild_picture - WHERE PICTUREID = #{pictureId}) + and t3.TASKINDEX =#{taskNode} LIMIT 1), 1)) AS historyStates FROM ocr_picture t1 LEFT JOIN ocr_taskchild_picture t2