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 475b172..f5dff51 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 @@ -2,12 +2,10 @@ package cn.jyjz.flowable.controller; import cn.jyjz.flowable.common.SystemConstantsOa; import cn.jyjz.flowable.domain.dto.HistoricTaskInstanceDto; -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.utils.PageUtils; -import cn.jyjz.flowable.utils.SysConstant; import cn.jyjz.xiaoyao.abase.service.SeqManageService; import cn.jyjz.xiaoyao.admin.dataobject.User; import cn.jyjz.xiaoyao.admin.service.UserService; @@ -21,33 +19,28 @@ import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQueryForm; 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.util.SearchQueryFormat; import cn.jyjz.xiaoyao.oa.from.dataobject.Category; -import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearch; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearchchild; +import cn.jyjz.xiaoyao.ocr.service.OcrSearchmanagerService; import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; +import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchService; +import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchchildService; import com.alanpoi.common.util.StringUtils; -import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.*; import org.apache.commons.collections4.CollectionUtils; -import org.flowable.ui.common.model.RemoteUser; -import org.flowable.ui.common.service.idm.RemoteIdmService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; -import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -75,7 +68,7 @@ public class FlowTaskController extends BaseController { private OcrTaskchildPictureService ocrTaskchildPictureService; @Resource - private UserapproveService userapproveService; + private OcrUsersearchchildService usersearchchildService; // /** // * 查询我的待办任务 // * @return @@ -147,7 +140,7 @@ public class FlowTaskController extends BaseController { @ResponseBody public ResultVo complete(@RequestBody FlowApprove approve, HttpServletRequest request) { UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); - Integer flag = flowTaskService.complete(approve, userToken); + Integer flag = flowTaskService.complete(approve, userToken, Arrays.asList(approve.getFlowTaskInfoList().get(0).getFormId())); return flag > 0 ? ResultVoUtil.success() : ResultVoUtil.error(); } @@ -168,14 +161,12 @@ public class FlowTaskController extends BaseController { //判断当前任务审批人是否一致 List formIds = ocrTaskchildPictureService.validateAssignee(formIdList, userToken); // 判断当前任务是否审批完毕 - List formId = this.ocrTaskchildPictureService.validateApprove(formIdList); - formIds.addAll(formId); if (CollectionUtils.isNotEmpty(formIds)) { - Integer success = flowTaskService.complete(approve, userToken); - return ResultVoUtil.success("审批成功" + success + "条," + "无权审核" + (flowTaskInfoList.size() - success) + "条",""); + Integer success = flowTaskService.complete(approve, userToken, formIds); + return ResultVoUtil.success("审批成功" + success + "条," + "无权审核" + (flowTaskInfoList.size() - success) + "条", ""); } } - return ResultVoUtil.success("审核成功0条," + "无权审核" + flowTaskInfoList.size() + "条",""); + return ResultVoUtil.success("审核成功0条," + "无权审核" + flowTaskInfoList.size() + "条", ""); } @GetMapping("/listhistore") @@ -309,14 +300,14 @@ public class FlowTaskController extends BaseController { String tenantId = request.getHeader("X-Tenant-Id"); String taskName = request.getParameter("keyword"); - if (org.apache.commons.lang3.StringUtils.isBlank(tenantId)) { return ResultVoUtil.error("租户主键不能为空"); } - if(org.apache.commons.lang3.StringUtils.isNotBlank(taskName)){ - searchQuery.addLike("fromtaskname",taskName); + if (org.apache.commons.lang3.StringUtils.isNotBlank(taskName)) { + searchQuery.addLike("fromtaskname", taskName); } + User user = this.userService.getSessionUser(request); if (user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))) { flowTaskService.getMyProcessInstances(searchQuery.getQuery(), pageUtils); @@ -342,6 +333,28 @@ public class FlowTaskController extends BaseController { return ResultVoUtil.success(pageUtils); } + private void disSearchQuery(SearchQuery query, OcrUsersearchchild userSearch) { + if (userSearch.getSearchtype().equals("eq")) { + if (userSearch.getSearchvalue().contains(",")) { + String[] userIds = userSearch.getSearchvalue().split(","); + List arrayData = Arrays.asList(userIds); + query.addIn(userSearch.getSearchfield(), arrayData); + } else { + query.addEqual(userSearch.getSearchfield(), userSearch.getSearchvalue()); + } + } + if (userSearch.getSearchtype().equals("noteq")) { + if (userSearch.getSearchvalue().contains(",")) { + String[] userIds = userSearch.getSearchvalue().split(","); + List arrayData = Arrays.asList(userIds); + query.addNotIn(userSearch.getSearchfield(), arrayData); + } else { + query.addNotEqual(userSearch.getSearchfield(), userSearch.getSearchvalue()); + } + } + + } + /** * 终审列表 @@ -413,6 +426,7 @@ public class FlowTaskController extends BaseController { searchQuery.addEqual("fromsourceid", iztaskrrom); } } + if (org.springframework.util.StringUtils.hasText(izuptime)) { String[] dateRange = izuptime.split("-"); if (dateRange.length == 2) { @@ -451,6 +465,14 @@ public class FlowTaskController extends BaseController { searchQuery.addEqual("thisLoginUserid", user.getId().toString()); searchQuery.addEqual("tenantid", tenantId); } + String searchId = request.getParameter("searchId"); + + if (StringUtils.isNotBlank(searchId)) { + List list = usersearchchildService.list(new LambdaQueryWrapper().eq(OcrUsersearchchild::getUsersearchid, searchId).orderByAsc(OcrUsersearchchild::getOrderNum)); + for (OcrUsersearchchild userSearch : list) { + disSearchQuery(searchQuery, userSearch); + } + } Map query = searchQuery.getQuery(); @@ -648,7 +670,8 @@ public class FlowTaskController extends BaseController { }) @GetMapping("/repetitionTaskList") @ResponseBody - public ResultVo repetitionTaskList() { - return flowTaskService.repetitionTaskList(); + public ResultVo repetitionTaskList(@RequestParam(name = "pageNo") Integer pageNo, + @RequestParam(name = "pageSize") Integer pageSize) { + return flowTaskService.repetitionTaskList(pageNo, pageSize); } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java index 437e847..8024d0e 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java @@ -3,7 +3,6 @@ package cn.jyjz.flowable.service; import cn.jyjz.flowable.domain.dto.HistoricTaskInstanceDto; import cn.jyjz.flowable.domain.vo.FlowTaskCompleteVO; -import cn.jyjz.flowable.domain.vo.FlowTaskVO; import cn.jyjz.flowable.domain.vo.WorkFlowNodeVO; import cn.jyjz.flowable.entity.FlowApprove; import cn.jyjz.flowable.utils.PageUtils; @@ -14,9 +13,7 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.flowable.engine.repository.ProcessDefinition; import org.flowable.task.api.Task; @@ -35,7 +32,7 @@ public interface IFlowTaskService { Category viewForm(String processId, HttpServletRequest request); - Integer complete(FlowApprove approve,UserToken userToken); + Integer complete(FlowApprove approve, UserToken userToken, List formIds); /** @@ -168,5 +165,5 @@ public interface IFlowTaskService { */ ResultVo repetitionTask(); - ResultVo repetitionTaskList(); + ResultVo repetitionTaskList(Integer pageNo, Integer pageSize); } 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 bd27eb2..dbe7c30 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 @@ -10,8 +10,6 @@ import cn.jyjz.flowable.entity.FlowTaskInfo; import cn.jyjz.flowable.service.IFlowInstanceService; import cn.jyjz.xiaoyao.common.base.language.SystemMessage; import cn.jyjz.xiaoyao.common.base.service.UserTokenService; -import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil; -import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; import cn.jyjz.xiaoyao.oa.from.dataDao.FlowableccMybatisDao; @@ -31,16 +29,15 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc; -import cn.jyjz.xiaoyao.oa.from.dataobject.UserFinal; import cn.jyjz.xiaoyao.oa.from.service.*; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.ocr.dataobject.*; import cn.jyjz.xiaoyao.ocr.service.*; import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting; +import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo; import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -55,10 +52,8 @@ import org.flowable.engine.ProcessEngineConfiguration; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; -import org.flowable.engine.impl.persistence.entity.ActivityInstanceEntity; import org.flowable.engine.impl.util.ExecutionGraphUtil; import org.flowable.engine.repository.ProcessDefinition; -import org.flowable.engine.runtime.ActivityInstance; import org.flowable.engine.runtime.Execution; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.engine.task.Comment; @@ -71,7 +66,6 @@ import org.flowable.task.api.history.HistoricTaskInstance; import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -439,12 +433,15 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask * 完成任务 */ @Override - public Integer complete(FlowApprove approve, UserToken userToken) { + public Integer complete(FlowApprove approve, UserToken userToken, List formIds) { Integer successCount = 0; try { if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(approve.getFlowTaskInfoList())) { List flowTaskInfoList = approve.getFlowTaskInfoList(); for (FlowTaskInfo flowTaskInfo : flowTaskInfoList) { + if(!formIds.contains(flowTaskInfo.getFormId())){ + continue; + } // 当前要处理的任务 Task task = taskService.createTaskQuery().taskId(flowTaskInfo.getTaskId()).singleResult(); // 查询流程定义的信息 @@ -1767,8 +1764,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } @Override - public ResultVo repetitionTaskList() { - return ResultVoUtil.success(flowableccMybatisDao.repetitionTaskList()); + public ResultVo repetitionTaskList(Integer pageNo, Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + + return ResultVoUtil.success(flowableccMybatisDao.repetitionTaskList(page)); } /** diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java index 06f2a9b..925d58b 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java @@ -5,7 +5,9 @@ import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.oa.from.vo.RepeatedContentVo; import cn.jyjz.xiaoyao.oa.from.vo.RepeatedTaskVo; import cn.jyjz.xiaoyao.oa.from.vo.UserDistionaryVo; +import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -40,5 +42,5 @@ public interface FlowableccMybatisDao extends BaseMapper { List repetitionTask(); - List repetitionTaskList(); + Page repetitionTaskList(Page page); } 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 a9958cb..6ef7461 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 @@ -224,7 +224,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl first = list.stream().filter(userapprove -> userapprove.getUserid().toString().equals(userToken.getUserid())).findFirst(); Userapprove userapprove = new Userapprove(); - userapprove.setStatshis(1); + userapprove.setStatshis(ocrTaskchildPicture.getStates()==3?2:ocrTaskchildPicture.getStates()==5?3:1); ocrTaskchildPicture.setUserapprove(first.orElse(userapprove)); } //查询图片对象 diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml index cfc9d80..0ec880e 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml @@ -67,8 +67,8 @@ - - + + @@ -224,7 +224,7 @@