Merge pull request 'sunchenliang' (#33) from sunchenliang into test

Reviewed-on: #33
pull/37/head
sunchenliang 1 year ago
commit c43e96a65c

@ -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<String> formIds = ocrTaskchildPictureService.validateAssignee(formIdList, userToken);
// 判断当前任务是否审批完毕
List<String> 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<String> 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<String> 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<OcrUsersearchchild> list = usersearchchildService.list(new LambdaQueryWrapper<OcrUsersearchchild>().eq(OcrUsersearchchild::getUsersearchid, searchId).orderByAsc(OcrUsersearchchild::getOrderNum));
for (OcrUsersearchchild userSearch : list) {
disSearchQuery(searchQuery, userSearch);
}
}
Map<String, Object> 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);
}
}

@ -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<String> formIds);
/**
@ -168,5 +165,5 @@ public interface IFlowTaskService {
*/
ResultVo repetitionTask();
ResultVo repetitionTaskList();
ResultVo repetitionTaskList(Integer pageNo, Integer pageSize);
}

@ -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<String> formIds) {
Integer successCount = 0;
try {
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(approve.getFlowTaskInfoList())) {
List<FlowTaskInfo> 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<OcrTaskChildPictureVo> page = new Page<>(pageNo, pageSize);
return ResultVoUtil.success(flowableccMybatisDao.repetitionTaskList(page));
}
/**

@ -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<Flowablecc> {
List<RepeatedContentVo> repetitionTask();
List<RepeatedTaskVo> repetitionTaskList();
Page<RepeatedTaskVo> repetitionTaskList(Page<OcrTaskChildPictureVo> page);
}

@ -224,7 +224,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
//目前没有做其他信息返回,如果需要再做修改
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
//判断审批人是否为当前登录用户
if (userToken.getLoginname().equals(ocrTaskchildPicture.getAssignee())) {
if (userToken.getLoginname().equals(ocrTaskchildPicture.getAssignee()) &&
(ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_END
&& ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE)) {
formIds.add(ocrTaskchildPicture.getId().toString());
}
}
@ -245,10 +247,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
//目前没有做其他信息返回,如果需要再做修改
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
//判断当前审批状态为拒绝或者通过的,不允许再做审批
if (ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_END
&& ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE) {
formIds.add(ocrTaskchildPicture.getId().toString());
}
}
return formIds;
}
@ -391,7 +390,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
if (null != userToken) {
Optional<Userapprove> 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));
}
//查询图片对象

@ -67,8 +67,8 @@
<result column="submit_date_timestamp" property="submitDateTimestamp" jdbcType="VARCHAR"/>
<result column="photo_date_timestamp" property="photoDateTimestamp" jdbcType="VARCHAR"/>
<result column="suspiciousfile" property="suspiciousfile" jdbcType="INTEGER"/>
<result column="states" property="states" jdbcType="INTEGER"/>
<result column="states" property="states" jdbcType="INTEGER"/>
<result column="STATES" property="states" jdbcType="INTEGER"/>
<result column="historyStates" property="historyStates" jdbcType="INTEGER"/>
<association property="pictureInfo" javaType="cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo">
<result column="pictureid" property="pictureId"/>
@ -224,7 +224,7 @@
</sql>
<select id="getPackagePictureInfo" resultMap="BaseResultMap">
SELECT t2.*,t3.*,ifnull(t4.STATES, 1) historyStates
SELECT t2.*,t3.*,ifnull(t5.STATSHIS, 1) historyStates,T4.STATES
FROM ocr_check_duplicate_result t1
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
left join ocr_picture_info t3 on t2.ID=t3.picture_id

@ -450,7 +450,7 @@
where tc.STATES = 5
) as tcp
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
on tcp.PICTUREID = pic.ID and pic.suspiciousfile =0
<include refid="Base_Where_union">
</include>
<if test="fromuptimeStart != null">
@ -470,16 +470,18 @@
select count(tcp.ID) from (
select tc.*
from ocr_taskchild_picture tc,
OA_USERFINAL_T uf
where tc.ID = uf.FORMID
OA_USERFINAL_T uf,
ocr_picture p
where tc.ID = uf.FORMID and p.ID = tc.PICTUREID and p.suspiciousfile =0
<if test="thisLoginUserid != null">
and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}
</if>
UNION
select
tc.*
from ocr_taskchild_picture tc
where tc.STATES = 5
from ocr_taskchild_picture tc,
ocr_picture p
where tc.STATES = 5 and p.suspiciousfile =0
) as tcp
<include refid="Base_Where_union">
</include>
@ -496,6 +498,7 @@
uf.TASKNO
from ocr_taskchild_picture tc
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
left join ocr_picture op on tc.PICTUREID = op.ID and op.suspiciousfile =0
where tc.ASSIGNEE = #{searchassignee}
and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2
@ -507,8 +510,9 @@
uf.TASKINDEX,
uf.TASKNO
from ocr_taskchild_picture tc,
OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID
OA_USERAPPROVE_T uf,
ocr_picture op
where tc.ID = uf.FORMID and tc.PICTUREID = op.ID and op.suspiciousfile =0
and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid}
@ -589,7 +593,7 @@
t1.photo_date_timestamp photoDateTimestamp
FROM ocr_picture t1
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
on t1.ID = t2.PICTUREID and t1.suspiciousfile = 0
LEFT JOIN oa_userapprove_t t3 on t2.ID = t3.FORMID and t3.TASKNAME = '${taskname}'
where t1.ID in
<foreach collection="pictureIds" open="(" close=")" item="item" separator="," index="index">
@ -655,7 +659,7 @@
LEFT JOIN ocr_picture_info t2 on t1.ID = t2.picture_id
LEFT JOIN ocr_taskchild_picture t3 on t1.ID = t3.PICTUREID
LEFT JOIN oa_userapprove_t t4 on t4.FORMID = t3.ID
where t1.ID = #{pictureId}
where t1.ID = #{pictureId} and t1.suspiciousfile = 0
</select>
<select id="getPackageSimilarityList" resultType="cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo">
@ -694,7 +698,7 @@
t1.max_similarity maxSimilarity,
ifnull(t4.STATSHIS, 1) historyStates
FROM ocr_check_duplicate_result t1
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID and t2.suspiciousfile = 0
LEFT JOIN ocr_taskchild_picture t3 ON t2.ID = t3.PICTUREID
LEFT JOIN oa_userapprove_t t4 ON t3.ID = t4.FORMID and t4.TASKNAME = '${taskname}'
WHERE t1.check_duplicate_id = #{checkDuplicateId}

Loading…
Cancel
Save