From d23fdcc8c372ece951e882f4a5c40bb5364986ef Mon Sep 17 00:00:00 2001 From: admin <149470858@qq.com> Date: Thu, 7 Mar 2024 23:42:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E5=AE=A1?= =?UTF-8?q?=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlowTaskController.java | 77 ++++++++++++++++++- .../service/OcrTaskchildPictureService.java | 15 ++++ .../impl/OcrTaskchildPictureServiceImpl.java | 47 +++++++++++ 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java index 50eaac23..2e2bed4e 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java @@ -22,14 +22,12 @@ import cn.jyjz.xiaoyao.common.mybatisplus.util.SearchQueryFormat; import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; +import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; import com.alanpoi.common.util.StringUtils; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import org.flowable.ui.common.model.RemoteUser; import org.flowable.ui.common.service.idm.RemoteIdmService; import org.springframework.beans.factory.annotation.Autowired; @@ -63,6 +61,8 @@ public class FlowTaskController extends BaseController { @Resource private SeqManageService seqManageService; + @Resource + private OcrTaskchildPictureService ocrTaskchildPictureService; // /** // * 查询我的待办任务 // * @return @@ -132,6 +132,75 @@ public class FlowTaskController extends BaseController { Boolean flag = flowTaskService.complete(taskVO,request); return flag?ResultVoUtil.success():ResultVoUtil.error(); } + + /** + * 批量任务审批 + * @return + */ + @ApiOperation(value="任务审批", notes="任务审批") + @PostMapping("/completeBatchFlow") + @ResponseBody + public ResultVo completeBatch(HttpServletRequest request){ + + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + + //任务ID + String[] taskId = request.getParameterValues("taskId"); + //审批的任务主键 + String[] formid = request.getParameterValues("formid"); + + 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)){ + return ResultVoUtil.error("审批人不一致,请到任务审批中处理。"); + } + + //TODO 判断当前任务是否审批完毕 + if(!this.ocrTaskchildPictureService.validateApprove(formid)){ + return ResultVoUtil.error("存在已经审批的任务。"); + } + + //TODO 判断taskid是否为非法,空置、taskid是否存在 + + //判断当前任务是否存在历史任务--暂时不做,生成任务时直接保存历史任务的审批工具中 + + 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 (StringUtils.isNotBlank(smg.toString()))?ResultVoUtil.error(smg.toString()):ResultVoUtil.success(); + } + @GetMapping("/listhistore") @ResponseBody public ResultVo listhistore(PageUtils vo, Model model, HttpServletRequest request){ 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 f07d5c32..a8d972b6 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 @@ -20,6 +20,21 @@ public interface OcrTaskchildPictureService extends BaseService listAll(String tenantId, String createUser, QueryWrapper queryWrapper); + /** + * 判断任务是否已经审批 + * @param formid 任务主键 + * @return + */ + public boolean validateApprove(String[] formid); + + /** + * 判断当前用户是否可以审批 + * @param formid 任务主键 + * @param userToken + * @return + */ + public boolean validateAssignee(String[] formid,UserToken userToken); + /** * 根据主键,查询图片详情 * @param fromid 任务主键 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 64b26132..e6236fec 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,5 +1,6 @@ package cn.jyjz.xiaoyao.ocr.service.impl; +import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.service.IFlowTaskService; import cn.jyjz.xiaoyao.common.base.param.ParamterPage; import cn.jyjz.xiaoyao.common.base.vo.ResultVo; @@ -164,6 +165,52 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); + + //目前没有做其他信息返回,如果需要再做修改 + for(OcrTaskchildPicture ocrTaskchildPicture:list){ + //判断审批人是否为当前登录用户 + if(userToken.getLoginname().equals(ocrTaskchildPicture.getAssignee())){ + + }else{ + return false; + } + } + return true; + } + + /** + * 判断任务是否已经审批 + * @param formid 任务主键 + * @return + */ + public boolean validateApprove(String[] formid){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.in("ID",formid); + List list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); + + //目前没有做其他信息返回,如果需要再做修改 + for(OcrTaskchildPicture ocrTaskchildPicture:list){ + //判断当前审批状态为拒绝或者通过的,不允许再做审批 + if(ocrTaskchildPicture.getStates().intValue() == SystemConstantsOa.OA_STATUS_TYPE_END + || ocrTaskchildPicture.getStates().intValue() == SystemConstantsOa.OA_STATUS_TYPE_REFUSE ){ + return false; + }else{ + + } + } + return true; + } @Override public List listAll(String tenantId, String createUser, QueryWrapper queryWrapper){