优化批量审批接口

pull/2/head
sunchenliang 1 year ago
parent a44c24815e
commit fbbff17114

@ -3,6 +3,8 @@ package cn.jyjz.flowable.controller;
import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.common.SystemConstantsOa;
import cn.jyjz.flowable.domain.dto.HistoricTaskInstanceDto; import cn.jyjz.flowable.domain.dto.HistoricTaskInstanceDto;
import cn.jyjz.flowable.domain.vo.FlowTaskVO; import cn.jyjz.flowable.domain.vo.FlowTaskVO;
import cn.jyjz.flowable.entity.FlowApprove;
import cn.jyjz.flowable.entity.FlowTaskInfo;
import cn.jyjz.flowable.service.IFlowTaskService; import cn.jyjz.flowable.service.IFlowTaskService;
import cn.jyjz.flowable.utils.PageUtils; import cn.jyjz.flowable.utils.PageUtils;
import cn.jyjz.flowable.utils.SysConstant; import cn.jyjz.flowable.utils.SysConstant;
@ -33,6 +35,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 io.swagger.annotations.*; import io.swagger.annotations.*;
import org.apache.commons.collections4.CollectionUtils;
import org.flowable.ui.common.model.RemoteUser; import org.flowable.ui.common.model.RemoteUser;
import org.flowable.ui.common.service.idm.RemoteIdmService; import org.flowable.ui.common.service.idm.RemoteIdmService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -87,6 +90,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @param processId * @param processId
* @return * @return
* @throws Exception * @throws Exception
@ -102,6 +106,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @param processId * @param processId
* @return * @return
* @throws Exception * @throws Exception
@ -117,6 +122,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@PostMapping("/viewFormid") @PostMapping("/viewFormid")
@ -133,81 +139,44 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "任务审批", notes = "任务审批") @ApiOperation(value = "任务审批", notes = "任务审批")
@PostMapping("/completeFlow") @PostMapping("/completeFlow")
@ResponseBody @ResponseBody
public ResultVo complete(FlowTaskVO taskVO,HttpServletRequest request){ public ResultVo complete(@RequestBody FlowApprove approve, HttpServletRequest request) {
Boolean flag = flowTaskService.complete(taskVO,request); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
Boolean flag = flowTaskService.complete(approve, userToken);
return flag ? ResultVoUtil.success() : ResultVoUtil.error(); return flag ? ResultVoUtil.success() : ResultVoUtil.error();
} }
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "任务审批", notes = "任务审批") @ApiOperation(value = "任务审批", notes = "任务审批")
@PostMapping("/completeBatchFlow") @PostMapping("/completeBatchFlow")
@ResponseBody @ResponseBody
public ResultVo completeBatch(HttpServletRequest request){ public ResultVo completeBatch(@RequestBody FlowApprove approve, HttpServletRequest request) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//任务ID //任务ID
String[] taskId = request.getParameterValues("taskId"); List<FlowTaskInfo> flowTaskInfoList = approve.getFlowTaskInfoList();
//审批的任务主键 if (CollectionUtils.isNotEmpty(flowTaskInfoList)) {
String[] formid = request.getParameterValues("formid"); List<String> formIdList = flowTaskInfoList.stream().map(FlowTaskInfo::getFormId).collect(Collectors.toList());
String[] taskname = request.getParameterValues("taskname");
//是否同意true同意false拒绝
boolean approvd = Boolean.valueOf(request.getParameter("approvd"));
//审批意见")
String taskComment = request.getParameter("taskComment");
//判断当前任务审批人是否一致 //判断当前任务审批人是否一致
if(!this.ocrTaskchildPictureService.validateAssignee(formid,userToken)){ if (!this.ocrTaskchildPictureService.validateAssignee(formIdList, userToken)) {
return ResultVoUtil.error("审批人不一致,请到任务审批中处理。"); return ResultVoUtil.error("审批人不一致,请到任务审批中处理。");
} }
// 判断当前任务是否审批完毕
//TODO 判断当前任务是否审批完毕 if (!this.ocrTaskchildPictureService.validateApprove(formIdList)) {
if(!this.ocrTaskchildPictureService.validateApprove(formid)){
return ResultVoUtil.error("存在已经审批的任务。"); return ResultVoUtil.error("存在已经审批的任务。");
} }
Boolean flag = flowTaskService.complete(approve, userToken);
//TODO 判断taskid是否为非法空置、taskid是否存在 return flag ? ResultVoUtil.success("审批成功!") : ResultVoUtil.error("审批失败!");
//判断当前任务是否存在历史任务--暂时不做,生成任务时直接保存历史任务的审批工具中
StringBuffer smg = new StringBuffer();
for(int i = 0;i < taskId.length;i++){
String ti = taskId[i];
String fi = formid[i];
FlowTaskVO taskVO = new FlowTaskVO();
taskVO.setTaskId(ti);
taskVO.setFormid(fi);
taskVO.setApprovd(approvd);
taskVO.setTaskComment(taskComment);
Boolean flag = flowTaskService.complete(taskVO,request);
if(!flag){
if(StringUtils.isNotBlank(smg.toString())){
smg.append("");
smg.append(taskname[i]);
smg.append("审批失败");
}else{
smg.append(taskname[i]);
smg.append("审批失败");
} }
return ResultVoUtil.error("审批信息为空!");
}
}
return (StringUtils.isNotBlank(smg.toString()))?ResultVoUtil.error(smg.toString()):ResultVoUtil.success();
} }
@GetMapping("/listhistore") @GetMapping("/listhistore")
@ -217,9 +186,11 @@ public class FlowTaskController extends BaseController {
List<HistoricTaskInstanceDto> list = flowTaskService.listHistoriceTask(processInstanceId); List<HistoricTaskInstanceDto> list = flowTaskService.listHistoriceTask(processInstanceId);
return ResultVoUtil.success(list); return ResultVoUtil.success(list);
} }
/** /**
* *
* *
*
* @return * @return
*/ */
@GetMapping("/finishedList") @GetMapping("/finishedList")
@ -239,9 +210,11 @@ public class FlowTaskController extends BaseController {
return ResultVoUtil.success(pageUtils); return ResultVoUtil.success(pageUtils);
} }
/** /**
* *
* *
*
* @return * @return
*/ */
@ApiOperation(value = "待办任务", notes = "待办任务") @ApiOperation(value = "待办任务", notes = "待办任务")
@ -318,9 +291,11 @@ public class FlowTaskController extends BaseController {
} }
return ResultVoUtil.success(pageUtils); return ResultVoUtil.success(pageUtils);
} }
/** /**
* *
* *
*
* @return * @return
*/ */
@ApiOperation(value = "我的任务", notes = "查询我的待办、已经办理任务") @ApiOperation(value = "我的任务", notes = "查询我的待办、已经办理任务")
@ -368,6 +343,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "我的终审列表", notes = "我的终审列表") @ApiOperation(value = "我的终审列表", notes = "我的终审列表")
@ -484,6 +460,7 @@ public class FlowTaskController extends BaseController {
/** /**
* () * ()
*
* @return * @return
*/ */
@ApiOperation(value = "图片分页列表查询-根据用户预设检索条件查询", notes = "") @ApiOperation(value = "图片分页列表查询-根据用户预设检索条件查询", notes = "")
@ -510,12 +487,11 @@ public class FlowTaskController extends BaseController {
} }
/** /**
* *
* *
* CATEGORYID * CATEGORYID
*
* @return * @return
*/ */
@GetMapping("/listdataall") @GetMapping("/listdataall")
@ -551,8 +527,10 @@ public class FlowTaskController extends BaseController {
} }
return ResultVoUtil.success(flowUnionVoList); return ResultVoUtil.success(flowUnionVoList);
} }
/** /**
* *
*
* @param pageUtils * @param pageUtils
* @param request * @param request
* @return * @return
@ -569,9 +547,11 @@ public class FlowTaskController extends BaseController {
return ResultVoUtil.success(pageUtils); return ResultVoUtil.success(pageUtils);
} }
/** /**
* *
* *
*
* @return * @return
*/ */
@GetMapping("/mylistcc") @GetMapping("/mylistcc")
@ -584,8 +564,10 @@ public class FlowTaskController extends BaseController {
return ResultVoUtil.success(flowableccIPage); return ResultVoUtil.success(flowableccIPage);
} }
/** /**
* *
*
* @return * @return
*/ */
@GetMapping("/cancelTask") @GetMapping("/cancelTask")
@ -600,6 +582,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "重置流程流程", notes = "重置流程流程") @ApiOperation(value = "重置流程流程", notes = "重置流程流程")
@ -619,6 +602,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "重置流程流程", notes = "重置流程流程") @ApiOperation(value = "重置流程流程", notes = "重置流程流程")
@ -638,6 +622,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "重复流程", notes = "重复流程") @ApiOperation(value = "重复流程", notes = "重复流程")
@ -652,6 +637,7 @@ public class FlowTaskController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@ApiOperation(value = "重复流程", notes = "重复流程") @ApiOperation(value = "重复流程", notes = "重复流程")

@ -0,0 +1,46 @@
package cn.jyjz.flowable.entity;
import lombok.Data;
import java.util.List;
/**
* ClassName FlowApprove$.java
* Description:
* Author scl.
* Date 2024/3/28 17:04
*/
@Data
public class FlowApprove {
/**
*
*/
private String comment;
/**
*
*/
private Boolean result;
/**
*
*/
private String failCauseName;
/**
* id
*/
private String failCauseId;
/**
*
*/
private String disposeType;
/**
* id
*/
private String disposeTypeId;
/**
* id
*/
private List<FlowTaskInfo> flowTaskInfoList;
}

@ -0,0 +1,25 @@
package cn.jyjz.flowable.entity;
import lombok.Data;
/**
* ClassName FlowTaskInfo$.java
* Description:
* Author scl.
* Date 2024/3/28 20:09
*/
@Data
public class FlowTaskInfo {
/**
* id
*/
private String formId;
/**
* id
*/
private String taskId;
/**
*
*/
private String taskName;
}

@ -5,6 +5,7 @@ import cn.jyjz.flowable.domain.dto.HistoricTaskInstanceDto;
import cn.jyjz.flowable.domain.vo.FlowTaskCompleteVO; import cn.jyjz.flowable.domain.vo.FlowTaskCompleteVO;
import cn.jyjz.flowable.domain.vo.FlowTaskVO; import cn.jyjz.flowable.domain.vo.FlowTaskVO;
import cn.jyjz.flowable.domain.vo.WorkFlowNodeVO; import cn.jyjz.flowable.domain.vo.WorkFlowNodeVO;
import cn.jyjz.flowable.entity.FlowApprove;
import cn.jyjz.flowable.utils.PageUtils; import cn.jyjz.flowable.utils.PageUtils;
import cn.jyjz.xiaoyao.admin.dataobject.User; import cn.jyjz.xiaoyao.admin.dataobject.User;
import cn.jyjz.xiaoyao.common.base.param.ParamterPage; import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
@ -34,7 +35,7 @@ public interface IFlowTaskService {
Category viewForm(String processId, HttpServletRequest request); Category viewForm(String processId, HttpServletRequest request);
Boolean complete(FlowTaskVO taskVO, HttpServletRequest request); Boolean complete(FlowApprove approve,UserToken userToken);
/** /**

@ -5,6 +5,8 @@ import cn.hutool.core.date.DateUtil;
import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.common.SystemConstantsOa;
import cn.jyjz.flowable.config.CustomProcessDiagramGenerator; import cn.jyjz.flowable.config.CustomProcessDiagramGenerator;
import cn.jyjz.flowable.domain.vo.*; import cn.jyjz.flowable.domain.vo.*;
import cn.jyjz.flowable.entity.FlowApprove;
import cn.jyjz.flowable.entity.FlowTaskInfo;
import cn.jyjz.flowable.service.IFlowInstanceService; import cn.jyjz.flowable.service.IFlowInstanceService;
import cn.jyjz.xiaoyao.common.base.language.SystemMessage; import cn.jyjz.xiaoyao.common.base.language.SystemMessage;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService; import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
@ -437,32 +439,49 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* *
*/ */
@Override @Override
public Boolean complete(FlowTaskVO taskVO, HttpServletRequest request) { public Boolean complete(FlowApprove approve, UserToken userToken) {
try { try {
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(approve.getFlowTaskInfoList())) {
List<FlowTaskInfo> flowTaskInfoList = approve.getFlowTaskInfoList();
for (FlowTaskInfo flowTaskInfo : flowTaskInfoList) {
// 当前要处理的任务 // 当前要处理的任务
Task task = taskService.createTaskQuery().taskId(taskVO.getTaskId()).singleResult(); Task task = taskService.createTaskQuery().taskId(flowTaskInfo.getTaskId()).singleResult();
// 查询流程定义的信息 // 查询流程定义的信息
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(task.getProcessDefinitionId()) .processDefinitionId(task.getProcessDefinitionId())
.singleResult(); .singleResult();
// 对任务添加对应的审批意见 // 对任务添加对应的审批意见
taskService.addComment(task.getId(), task.getProcessInstanceId(), taskVO.getTaskComment()); taskService.addComment(task.getId(), task.getProcessInstanceId(), approve.getComment());
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
if (null != taskVO.getTaskApprovd() && StringUtils.isNotBlank(taskVO.getTaskApprovd().toString())) { variables.put("approvd", approve.getResult());
variables.put("taskApprovd", taskVO.getTaskApprovd().intValue()); OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
if (approve.getResult()) {
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken);
} else {
disposeFailureTask(task,flowTaskInfo.getFormId(),variables);
}
userapproveService.save(userToken, approve, task,flowTaskInfo.getFormId());
}
}
//保存当前审批用户与业务表的关系
return true;
} catch (Exception e) {
log.error("e={}", e);
}
return false;
} }
variables.put("approvd", taskVO.getApprovd());
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(taskVO.getFormid())); /**
//只有同意,再进行候选人设置 *
if (taskVO.getApprovd()) { */
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken) {
//进入下一个节点 //进入下一个节点
taskService.complete(task.getId(), variables); taskService.complete(task.getId(), variables);
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition); updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition);
String category = processDefinition.getCategory(); String category = processDefinition.getCategory();
Category categoryDto = this.categoryService.getCategory(category); Category categoryDto = this.categoryService.getCategory(category);
IFormCustomService iFormCustomService = SpringUtils.getBean(categoryDto.getServicename()); IFormCustomService iFormCustomService = SpringUtils.getBean(categoryDto.getServicename());
FlowModelVO formData = iFormCustomService.getForm(taskVO.getFormid()); FlowModelVO formData = iFormCustomService.getForm(formId);
List<Task> taskList = this.nowRunTask(formData.getProcessInstanceId(), formData.getProcessdefinitionid()); List<Task> taskList = this.nowRunTask(formData.getProcessInstanceId(), formData.getProcessdefinitionid());
Task taskData = null; Task taskData = null;
if (null != taskList && !taskList.isEmpty()) { if (null != taskList && !taskList.isEmpty()) {
@ -476,10 +495,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//判断节点上的描述字段是否伟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)) {
User user = userService.findByLoginname(formData.getAssignee()); User user = userService.findByLoginname(formData.getAssignee());
userFinalService.save(user.getId().toString(), taskVO.getFormid()); userFinalService.save(user.getId().toString(), formId);
} }
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(taskVO.getFormid())); OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
sendMsg(childPicture, userToken); sendMsg(childPicture, userToken);
childPicture.setTaskId(taskData.getId()); childPicture.setTaskId(taskData.getId());
childPicture.setTaskname(taskData.getName()); childPicture.setTaskname(taskData.getName());
@ -487,7 +505,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
} }
//增加未查看记录 //增加未查看记录
userViewApproeService.saveUserViewApproe(formData.getAssignee(), formData.getFormid().toString(), formData.getTenantid().toString()); userViewApproeService.saveUserViewApproe(formData.getAssignee(), formData.getFormid().toString(), formData.getTenantid().toString());
} else {
}
/**
*
*/
private void disposeFailureTask(Task task, String formId, Map<String, Object> variables) {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
//我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename //我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
String businesskey = processInstance.getBusinessKey(); String businesskey = processInstance.getBusinessKey();
@ -518,20 +542,12 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
List<String> executionIds = new ArrayList<>(); List<String> executionIds = new ArrayList<>();
executions.forEach(execution -> executionIds.add(execution.getId())); executions.forEach(execution -> executionIds.add(execution.getId()));
runtimeService.createChangeActivityStateBuilder().moveExecutionsToSingleActivityId(executionIds, endId).processVariables(variables).changeState(); runtimeService.createChangeActivityStateBuilder().moveExecutionsToSingleActivityId(executionIds, endId).processVariables(variables).changeState();
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(taskVO.getFormid())); OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
taskchildPicture.setFinishtime(System.currentTimeMillis()); taskchildPicture.setFinishtime(System.currentTimeMillis());
ocrTaskchildPictureService.updateById(taskchildPicture); ocrTaskchildPictureService.updateById(taskchildPicture);
} }
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//保存当前审批用户与业务表的关系
userapproveService.save(userToken, taskVO, task);
return true;
} catch (Exception e) {
log.error("e={}", e);
}
return false;
}
//发送消息
private void sendMsg(OcrTaskchildPicture model, UserToken userToken) { private void sendMsg(OcrTaskchildPicture model, UserToken userToken) {
cn.jyjz.xiaoyao.common.base.vo.User byLoginname = userTokenService.findByLoginname(model.getAssignee()); cn.jyjz.xiaoyao.common.base.vo.User byLoginname = userTokenService.findByLoginname(model.getAssignee());
OcrMsg msg = new OcrMsg(); OcrMsg msg = new OcrMsg();

@ -1,6 +1,7 @@
package cn.jyjz.xiaoyao.oa.from.service; package cn.jyjz.xiaoyao.oa.from.service;
import cn.jyjz.flowable.domain.vo.FlowTaskVO; import cn.jyjz.flowable.domain.vo.FlowTaskVO;
import cn.jyjz.flowable.entity.FlowApprove;
import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService; import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove;
@ -13,11 +14,11 @@ public interface UserapproveService extends BaseService<Userapprove> {
/** /**
* *
* @param userid * @param approve
* @param formid * @param formId
* @return truefalse * @return truefalse
*/ */
public boolean save(UserToken userToken, FlowTaskVO taskVO, Task task ); public boolean save(UserToken userToken, FlowApprove approve, Task task,String formId);
/** /**
* *

@ -1,6 +1,7 @@
package cn.jyjz.xiaoyao.oa.from.service.impl; package cn.jyjz.xiaoyao.oa.from.service.impl;
import cn.jyjz.flowable.domain.vo.FlowTaskVO; import cn.jyjz.flowable.domain.vo.FlowTaskVO;
import cn.jyjz.flowable.entity.FlowApprove;
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.dataDao.UserapproveMybatisDao; import cn.jyjz.xiaoyao.oa.from.dataDao.UserapproveMybatisDao;
@ -22,22 +23,19 @@ public class UserapproveServiceImpl extends BaseServiceImpl<UserapproveMybatisDa
private UserapproveMybatisDao userapprovemybatisdao; private UserapproveMybatisDao userapprovemybatisdao;
@Override @Override
public boolean save(UserToken userToken, FlowTaskVO taskVO, Task taskd) { public boolean save(UserToken userToken, FlowApprove approve, Task taskd,String formId) {
Userapprove userapprove = new Userapprove(); Userapprove userapprove = new Userapprove();
userapprove.setUserid(Long.parseLong(userToken.getUserid())); userapprove.setUserid(Long.parseLong(userToken.getUserid()));
userapprove.setFormid(Long.parseLong(taskVO.getFormid())); userapprove.setFormid(Long.parseLong(formId));
userapprove.setTaskname(taskd.getName()); userapprove.setTaskname(taskd.getName());
userapprove.setTaskcomment(taskVO.getTaskComment()); userapprove.setTaskcomment(approve.getComment());
userapprove.setCreatedate(System.currentTimeMillis()); userapprove.setCreatedate(System.currentTimeMillis());
userapprove.setUsername(userToken.getUsername()); userapprove.setUsername(userToken.getUsername());
if (taskVO.getApprovd()) { if (approve.getResult()) {
userapprove.setStatshis(2); userapprove.setStatshis(2);
} else { } else {
userapprove.setStatshis(3); userapprove.setStatshis(3);
} }
return this.save(userapprove); return this.save(userapprove);
} }

@ -0,0 +1,59 @@
package cn.jyjz.xiaoyao.ocr.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* ClassName ApproveNodeDto$.java
* Description:
* Author scl.
* Date 2024/3/27 23:57
*/
@Data
public class ApproveNodeDto {
/**
*
*/
private String nodeName;
/**
*
*/
private String approveByName;
/**
*
*/
private Integer approveWay;
/**
*
*/
private Integer approveResult;
/**
*
*/
private String reason;
/**
*
*/
private Integer processMethod;
/**
*
*/
private String approveRemark;
/**
*
*/
private String extendField;
/**
*
*/
private Integer isPictureRight;
/**
*
*/
private Integer isPictureRepeat;
/**
*
*/
private Integer isBriefRepeat;
}

@ -0,0 +1,75 @@
package cn.jyjz.xiaoyao.ocr.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* ClassName FlowResultDto$.java
* Description:
* Author scl.
* Date 2024/3/27 22:39
*/
@Data
public class FlowResultDto {
/**
* id
*/
private Long tenantNo;
/**
* id
*/
private Long accountNo;
/**
* id 2.0no
*/
private Long taskNo;
/**
* 0.,1.'
*/
private Integer approveResult;
/**
*
*/
private String approveRemark;
/**
*
*/
private BigDecimal pictureMatchDegree;
/**
*
*/
private String extendField;
/**
* 0 ,1
*/
private Integer isPictureRepeat;
/**
* 0 ,1
*/
private Integer isPictureRight;
/**
* 0 ,1
*/
private Integer isBriefRepeat;
/**
*
*/
private List<Long> falseImgList;
/**
*
*/
private List<Long> briefRepeatTaskList;
/**
*
*/
private List<ApproveNodeDto> approveDetailList;
/**
*
*/
private List<ReuseImgDto> pictureRepeatList;
}

@ -0,0 +1,25 @@
package cn.jyjz.xiaoyao.ocr.dto;
import lombok.Data;
/**
* ClassName ReuseImgDto$.java
* Description:
* Author scl.
* Date 2024/3/27 23:59
*/
@Data
public class ReuseImgDto {
/**
* no 2.0no
*/
private Long imgNo;
/**
* taskNo 2.0no
*/
private Long taskNo;
/**
* ImgNo 2.0no
*/
private Long repeatImgNo;
}

@ -51,7 +51,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @param formid * @param formid
* @return * @return
*/ */
public boolean validateApprove(String[] formid); public boolean validateApprove(List<String> formid);
public boolean validateBoole(String[] formid); public boolean validateBoole(String[] formid);
@ -61,7 +61,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @param userToken * @param userToken
* @return * @return
*/ */
public boolean validateAssignee(String[] formid,UserToken userToken); public boolean validateAssignee(List<String> formid,UserToken userToken);
/** /**
* *
@ -147,4 +147,6 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
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);
void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture,OcrPicture picture);
} }

@ -14,6 +14,7 @@ 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.dataDao.OcrTaskchildPictureMybatisDao; import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.*; import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.dto.FlowResultDto;
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;
@ -39,6 +40,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -201,7 +203,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
* @param userToken * @param userToken
* @return * @return
*/ */
public boolean validateAssignee(String[] formid, UserToken userToken) { public boolean validateAssignee(List<String> formid, UserToken userToken) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("ID", formid); queryWrapper.in("ID", formid);
List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper);
@ -224,7 +226,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
* @param formid * @param formid
* @return * @return
*/ */
public boolean validateApprove(String[] formid) { public boolean validateApprove(List<String> formid) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("ID", formid); queryWrapper.in("ID", formid);
List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper);
@ -686,4 +688,14 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName); return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName);
} }
@Override
public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture) {
FlowResultDto flowResultDto = new FlowResultDto();
flowResultDto.setTenantNo(picture.getTenantId());
flowResultDto.setAccountNo(Long.parseLong(picture.getPictureid()));
flowResultDto.setTaskNo(Long.parseLong(picture.getRemark()));
flowResultDto.setPictureMatchDegree(BigDecimal.valueOf(picture.getSimilarityscore()));
flowResultDto.setIsPictureRepeat(Integer.valueOf(picture.getField14()));
}
} }

Loading…
Cancel
Save