fix: 任务审批列表及详情

fix/UpdateFlowComplete20240416
sunchenliang 1 year ago
parent 1b8cf716cb
commit 1b0a0efa29

@ -459,7 +459,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
variables.put("approvd", approve.getResult()); variables.put("approvd", approve.getResult());
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId())); OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
if (approve.getResult()) { 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 { } else {
disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve); 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<String, Object> variables, private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> 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); 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<Department>().eq(Department::getDeptno, deptid)); Department department = departmentService.getOne(new LambdaQueryWrapper<Department>().eq(Department::getDeptno, deptid));
IFormCustomService iFormCustomService = SpringUtils.getBean(department.getServicename()); IFormCustomService iFormCustomService = SpringUtils.getBean(department.getServicename());
FlowModelVO formData = iFormCustomService.getForm(formId); FlowModelVO formData = iFormCustomService.getForm(formId);
List<Task> taskList = this.nowRunTask(formData.getProcessInstanceId(), formData.getProcessdefinitionid()); List<Task> taskList = this.nowRunTask(formData.getProcessInstanceId(), formData.getProcessdefinitionid());
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
Task taskData = null; Task taskData = null;
if (null != taskList && !taskList.isEmpty()) { if (null != taskList && !taskList.isEmpty()) {
if (taskList.size() > 1) {
List<String> taskIds = taskList.stream().map(Task::getId).collect(Collectors.toList());
List<String> 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); taskData = taskList.get(0);
} }
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
childPicture.setTaskNode(taskData.getDescription());
if (ObjectUtils.isEmpty(taskData)) { if (ObjectUtils.isEmpty(taskData)) {
model.setFinishtime(System.currentTimeMillis()); model.setFinishtime(System.currentTimeMillis());
model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END); model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END);
OcrPicture picture = ocrPictureService.getById(model.getPictureid()); OcrPicture picture = ocrPictureService.getById(model.getPictureid());
ocrTaskchildPictureService.sendFlowTaskResult(childPicture, picture, approve); ocrTaskchildPictureService.sendFlowTaskResult(childPicture, picture, approve);
} else { } else {
childPicture.setTaskNode(taskData.getDescription());
//判断节点上的描述字段是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录 //判断节点上的描述字段是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录
if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) { if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) {
childPicture.setIsFinal(1); childPicture.setIsFinal(1);
@ -507,8 +516,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
userFinalService.save(user.getId().toString(), formId); userFinalService.save(user.getId().toString(), formId);
} }
this.sendMsg(childPicture, userToken); this.sendMsg(childPicture, userToken);
childPicture.setTaskId(taskData.getId());
childPicture.setTaskname(taskData.getName());
} }
ocrTaskchildPictureService.updateById(childPicture); ocrTaskchildPictureService.updateById(childPicture);
//增加未查看记录 //增加未查看记录
@ -594,10 +602,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @param processDefinition * @param processDefinition
*/ */
public void updateAssignee(String processInstanceId, String processDefinitionId, 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) { if (null != flowTaskCompleteVO) {
@ -686,7 +694,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* *
* @param processInstanceId * @param processInstanceId
*/ */
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid) { public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId, String deptid) {
FlowTaskCompleteVO flowTaskCompleteVO = null; FlowTaskCompleteVO flowTaskCompleteVO = null;
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
@ -723,7 +731,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//发起人员登录账号 //发起人员登录账号
String startUserId = hi.getStartUserId(); String startUserId = hi.getStartUserId();
//通过候选组主键,查询审批人员信息,并自动拾取 //通过候选组主键,查询审批人员信息,并自动拾取
loginuser = candidateuserService.getClaimUser(startUserId, groupid,deptid); loginuser = candidateuserService.getClaimUser(startUserId, groupid, deptid);
if (StringUtils.isNotBlank(loginuser)) { if (StringUtils.isNotBlank(loginuser)) {
taskService.claim(task.getId(), 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)); 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(); String historyProcessDefinitionId = terminatedInstances.get(0).getProcessDefinitionId();
boolean isStart = iFlowInstanceService.startProcessInstanceById(historyProcessDefinitionId, ocrTaskchildPicture.getCreateusername(), 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) { if (isStart) {
ResultVoUtil.success(); ResultVoUtil.success();
@ -1819,7 +1827,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid()); Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid());
boolean isStart = iFlowInstanceService.startProcessInstanceById(task.getProcessDefinitionId(), ocrTaskchildPicture.getCreateusername(), 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) { if (isStart) {
ResultVoUtil.success(); ResultVoUtil.success();

@ -383,9 +383,10 @@ public class OcrTaskchildPictureController extends BaseController {
@RequestParam(name = "orderType") String orderType, @RequestParam(name = "orderType") String orderType,
@RequestParam(name = "orderName") String orderName, @RequestParam(name = "orderName") String orderName,
@RequestParam(name = "pictureId") String pictureId, @RequestParam(name = "pictureId") String pictureId,
@RequestParam(name = "taskNode") String taskNode,
HttpServletRequest request) { HttpServletRequest request) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
Page<OcrTaskChildPictureVo> similarityList = ocrTaskchildPictureService.getSimilarityList(pageNo, pageSize, pictureId, orderType, orderName,userToken); Page<OcrTaskChildPictureVo> similarityList = ocrTaskchildPictureService.getSimilarityList(pageNo, pageSize, pictureId, orderType, orderName,userToken,taskNode);
return ResultVoUtil.success(similarityList); return ResultVoUtil.success(similarityList);
} }

@ -51,7 +51,7 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper<OcrTaskchildPi
String selectocpicture(@Param("tenantid")String tenantid,@Param("packageid")String packageid,@Param("id")String id); String selectocpicture(@Param("tenantid")String tenantid,@Param("packageid")String packageid,@Param("id")String id);
List<OcrTaskChildPictureVo> getPictureHistoryList(@Param("pictureIds") List<String> pictureIds, @Param("pictureId") String pictureId); List<OcrTaskChildPictureVo> getPictureHistoryList(@Param("pictureIds") List<String> pictureIds, @Param("pictureId") String pictureId, @Param("taskNode") String taskNode);
List<OcrTaskChildPictureVo> getDubiousfileList(@Param("pictureIds") List<String> pictureIds, @Param("taskname") String taskname); List<OcrTaskChildPictureVo> getDubiousfileList(@Param("pictureIds") List<String> pictureIds, @Param("taskname") String taskname);
PictureDetailVo getPictureDetail(String pictureId); PictureDetailVo getPictureDetail(String pictureId);

@ -16,7 +16,6 @@ import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
/** /**
* *
@ -143,11 +142,11 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
public Long listmytaskCount(Map<String, Object> query); public Long listmytaskCount(Map<String, Object> query);
List<OcrTaskChildPictureVo> getPictureHistoryList(List<String> pictureIds, String taskname); List<OcrTaskChildPictureVo> getPictureHistoryList(List<String> pictureIds, String taskname,String taskNode);
PictureDetailVo getPictureDetail(String pictureId, UserToken userToken); PictureDetailVo getPictureDetail(String pictureId, UserToken userToken);
Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken); Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken, String taskNode);
Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId); Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId);

@ -1,7 +1,6 @@
package cn.jyjz.xiaoyao.ocr.service.impl; package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.jyjz.flowable.common.ProcessConstant;
import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.common.SystemConstantsOa;
import cn.jyjz.flowable.domain.vo.FlowModelVO; import cn.jyjz.flowable.domain.vo.FlowModelVO;
import cn.jyjz.flowable.entity.FlowApprove; 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.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; 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.dataobject.Userapprove;
import cn.jyjz.xiaoyao.oa.from.service.CategoryService;
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; 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.dataDao.OcrTaskchildPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureDuplicateHis; 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.dataobject.OcrTaskchildPictureAppro;
import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto; import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto;
import cn.jyjz.xiaoyao.ocr.dto.FlowResultDto; 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.dto.UserapproveDto;
import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService; import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService; 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.apache.commons.lang3.StringUtils;
import org.flowable.task.api.Task; import org.flowable.task.api.Task;
import org.springframework.beans.factory.annotation.Autowired; 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.mock.web.MockHttpServletRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
@ -426,13 +417,20 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
} else { } else {
ocrTaskchildPicture.setIzHistory(true); ocrTaskchildPicture.setIzHistory(true);
} }
String taskId = ocrTaskchildPicture.getTaskId();
//查询审批流节点信息 String assignee = ocrTaskchildPicture.getAssignee();
List<Task> taskList = iFlowTaskService.nowRunTask(ocrTaskchildPicture.getProcessinstanceid(), ocrTaskchildPicture.getProcessdefinitionid()); if(taskId.contains(",")){
if (null != taskList && !taskList.isEmpty()) { String[] split = assignee.split(",");
ocrTaskchildPicture.setTaskId(taskList.get(0).getId()); 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()); ocrTaskchildPicture.setIztrueorfalse(ocrPicture.getIztrueorfalse());
//是否已经审批 //是否已经审批
@ -664,8 +662,8 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
} }
@Override @Override
public List<OcrTaskChildPictureVo> getPictureHistoryList(List<String> pictureIds, String pictureId) { public List<OcrTaskChildPictureVo> getPictureHistoryList(List<String> pictureIds, String pictureId,String taskNode) {
return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds, pictureId); return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds, pictureId,taskNode);
} }
@Override @Override
@ -684,13 +682,13 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
} }
@Override @Override
public Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken) { public Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken, String taskNode) {
OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, pictureId)); OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, pictureId));
Page<OcrTaskChildPictureVo> objectPage = new Page<>(); Page<OcrTaskChildPictureVo> objectPage = new Page<>();
if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) { if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) {
JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson()); JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson());
Set<String> pictureIds = jsonObject.keySet(); Set<String> pictureIds = jsonObject.keySet();
List<OcrTaskChildPictureVo> taskChildPicturesOld = this.getPictureHistoryList(new ArrayList<>(pictureIds), pictureId); List<OcrTaskChildPictureVo> taskChildPicturesOld = this.getPictureHistoryList(new ArrayList<>(pictureIds), pictureId,taskNode);
List<OcrTaskChildPictureVo> taskChildPictures = new ArrayList<>(); List<OcrTaskChildPictureVo> taskChildPictures = new ArrayList<>();
for (OcrTaskChildPictureVo taskChildPicture : taskChildPicturesOld) { for (OcrTaskChildPictureVo taskChildPicture : taskChildPicturesOld) {
if(taskChildPicture.getPictureId()!=null){ if(taskChildPicture.getPictureId()!=null){

@ -766,10 +766,7 @@
IFNULL((SELECT t3.STATSHIS IFNULL((SELECT t3.STATSHIS
FROM oa_userapprove_t t3 FROM oa_userapprove_t t3
WHERE t3.FORMID = t2.ID WHERE t3.FORMID = t2.ID
and t3.TASKINDEX = and t3.TASKINDEX =#{taskNode}
(SELECT TASKNODE
FROM ocr_taskchild_picture
WHERE PICTUREID = #{pictureId})
LIMIT 1), 1)) AS historyStates LIMIT 1), 1)) AS historyStates
FROM ocr_picture t1 FROM ocr_picture t1
LEFT JOIN ocr_taskchild_picture t2 LEFT JOIN ocr_taskchild_picture t2

Loading…
Cancel
Save