From 9cb6c446b25865a9484f7325baaabb9cf4f69f2a Mon Sep 17 00:00:00 2001 From: sunchenliang <2532527871@qq.com> Date: Fri, 29 Mar 2024 23:26:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor/1.=E4=BF=AE=E6=94=B9=E7=9B=B8=E4=BC=BC?= =?UTF-8?q?=E5=BA=A6=E5=88=97=E8=A1=A8=202.=E5=AE=8C=E5=96=84=E6=97=A0?= =?UTF-8?q?=E9=87=8F=E4=BA=91=E5=9B=9E=E4=BC=A0=203.=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB=E5=9E=8B=204.?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AE=A1=E6=89=B9=E5=8E=86=E5=8F=B2=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=B7=BB=E5=8A=A0=205.=E4=BB=BB=E5=8A=A1=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=B7=BB=E5=8A=A0=E6=8F=90=E4=BA=A4=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/jyjz/xiaoyao/common/base/vo/User.java | 3 + .../xiaoyao/common/base/vo/UserToken.java | 43 ++++++----- .../jyjz/xiaoyao/admin/dataobject/User.java | 4 + .../jyjz/flowable/common/ProcessConstant.java | 18 ++++- .../controller/FlowTaskController.java | 19 +++-- .../flowable/service/IFlowTaskService.java | 4 +- .../service/impl/FlowTaskServiceImpl.java | 19 +++-- .../oa/from/dataobject/Userapprove.java | 6 ++ .../service/impl/UserapproveServiceImpl.java | 2 + .../OcrTaskchildPictureController.java | 35 +++------ .../dataobject/OcrTaskchildPictureAppro.java | 5 ++ .../service/OcrTaskchildPictureService.java | 11 +-- .../impl/OcrTaskPackageServiceImpl.java | 16 ++++ .../impl/OcrTaskchildPictureServiceImpl.java | 73 +++++++++++++------ .../ocr/vo/OcrTaskchildPictureApproVo.java | 2 +- 15 files changed, 166 insertions(+), 94 deletions(-) diff --git a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/User.java b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/User.java index 8ef4f310..fe4115e2 100644 --- a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/User.java +++ b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/User.java @@ -86,6 +86,9 @@ public class User implements java.io.Serializable { //密码最后更新时间 private Long psdupdatetime; + //用户审批节点 + private Integer nodeType; + //用户对应的角色信息,映射文件中对应的字段信息 @JsonIgnore private List roleslist = new ArrayList(0); diff --git a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/UserToken.java b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/UserToken.java index ed273aa0..a5e401b7 100644 --- a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/UserToken.java +++ b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/vo/UserToken.java @@ -15,32 +15,35 @@ import lombok.NoArgsConstructor; public class UserToken implements java.io.Serializable { - private static final long serialVersionUID = 8798596773855969L; + private static final long serialVersionUID = 8798596773855969L; - // loginname + tokenuuid用于缓存的key使用 - private String tokenid; + // loginname + tokenuuid用于缓存的key使用 + private String tokenid; - private String tokenuuid; + private String tokenuuid; - //用户主键 - private String userid; + //用户主键 + private String userid; - //登陆账号 - private String loginname; + //登陆账号 + private String loginname; - //用户名 - private String username; + //用户名 + private String username; - // 客户端 - private String userAgent; - // 授权时间 - private Long issuedAt; - // 过期时间 - private Long expiresAt; - // 是否记住我 - private boolean remember; + // 客户端 + private String userAgent; + // 授权时间 + private Long issuedAt; + // 过期时间 + private Long expiresAt; + // 是否记住我 + private boolean remember; - //用户登录后的签名信息,目前使用userid签名 - private String signUser; + //用户登录后的签名信息,目前使用userid签名 + private String signUser; + + //用户审批节点 + private Integer nodeType; } \ No newline at end of file diff --git a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java index fcc63e3c..af386ca1 100644 --- a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java +++ b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java @@ -124,6 +124,10 @@ public class User implements BaseDto,java.io.Serializable { @TableField(value="PSDUPDATETIME") @JsonSerialize(using = DateSerializer.class) private Long psdupdatetime; + @Schema(description = "用户审批节点") + @TableField(value="NODETYPE") + @JsonSerialize(using = DateSerializer.class) + private Integer nodeType; //用户对应的角色信息,映射文件中对应的字段信息 @JsonIgnore diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/common/ProcessConstant.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/common/ProcessConstant.java index 5bab7e6d..6500c5f9 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/common/ProcessConstant.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/common/ProcessConstant.java @@ -1,12 +1,24 @@ package cn.jyjz.flowable.common; +import java.util.HashMap; +import java.util.Map; + /** * 流程相关的常量 */ public class ProcessConstant { - - + + public static final String BPMN_FILE_SUFFIX = ".bpmn"; - + public static final String FORM_FILE_SUFFIX = ".form"; + + public static Map userNodeType; + + static { + userNodeType = new HashMap<>(); + userNodeType.put(1, "一级审批"); + userNodeType.put(2, "二级审批"); + userNodeType.put(3, "最终审批"); + } } 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 d2674ad2..8c443443 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 @@ -147,8 +147,8 @@ public class FlowTaskController extends BaseController { @ResponseBody public ResultVo complete(@RequestBody FlowApprove approve, HttpServletRequest request) { UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); - Boolean flag = flowTaskService.complete(approve, userToken); - return flag ? ResultVoUtil.success() : ResultVoUtil.error(); + Integer flag = flowTaskService.complete(approve, userToken); + return flag > 0 ? ResultVoUtil.success() : ResultVoUtil.error(); } /** @@ -166,17 +166,16 @@ public class FlowTaskController extends BaseController { if (CollectionUtils.isNotEmpty(flowTaskInfoList)) { List formIdList = flowTaskInfoList.stream().map(FlowTaskInfo::getFormId).collect(Collectors.toList()); //判断当前任务审批人是否一致 - if (!this.ocrTaskchildPictureService.validateAssignee(formIdList, userToken)) { - return ResultVoUtil.error("审批人不一致,请到任务审批中处理。"); - } + List formIds = ocrTaskchildPictureService.validateAssignee(formIdList, userToken); // 判断当前任务是否审批完毕 - if (!this.ocrTaskchildPictureService.validateApprove(formIdList)) { - return ResultVoUtil.error("存在已经审批的任务。"); + 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) + "条"); } - Boolean flag = flowTaskService.complete(approve, userToken); - return flag ? ResultVoUtil.success("审批成功!") : ResultVoUtil.error("审批失败!"); } - return ResultVoUtil.error("审批信息为空!"); + return ResultVoUtil.success("审核成功0条," + "审核失败" + flowTaskInfoList.size() + "条"); } @GetMapping("/listhistore") 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 22c29397..437e8471 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 @@ -35,7 +35,7 @@ public interface IFlowTaskService { Category viewForm(String processId, HttpServletRequest request); - Boolean complete(FlowApprove approve,UserToken userToken); + Integer complete(FlowApprove approve,UserToken userToken); /** @@ -53,7 +53,7 @@ public interface IFlowTaskService { * @param processDefinition */ public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition); - + void sendMsg(OcrTaskchildPicture model, UserToken userToken); void finishedList(PageUtils pageUtils, HttpServletRequest request); /** 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 a5bacbdb..477859bc 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 @@ -439,7 +439,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask * 完成任务 */ @Override - public Boolean complete(FlowApprove approve, UserToken userToken) { + public Integer complete(FlowApprove approve, UserToken userToken) { + Integer successCount = 0; try { if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(approve.getFlowTaskInfoList())) { List flowTaskInfoList = approve.getFlowTaskInfoList(); @@ -458,17 +459,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if (approve.getResult()) { disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken); } else { - disposeFailureTask(task,flowTaskInfo.getFormId(),variables); + disposeFailureTask(task, flowTaskInfo.getFormId(), variables); } - userapproveService.save(userToken, approve, task,flowTaskInfo.getFormId()); + userapproveService.save(userToken, approve, task, flowTaskInfo.getFormId()); + successCount++; } } //保存当前审批用户与业务表的关系 - return true; + return successCount; } catch (Exception e) { log.error("e={}", e); } - return false; + return successCount; } /** @@ -498,7 +500,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask userFinalService.save(user.getId().toString(), formId); } OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId)); - sendMsg(childPicture, userToken); + this.sendMsg(childPicture, userToken); childPicture.setTaskId(taskData.getId()); childPicture.setTaskname(taskData.getName()); ocrTaskchildPictureService.updateById(childPicture); @@ -548,7 +550,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } //发送消息 - private void sendMsg(OcrTaskchildPicture model, UserToken userToken) { + public void sendMsg(OcrTaskchildPicture model, UserToken userToken) { cn.jyjz.xiaoyao.common.base.vo.User byLoginname = userTokenService.findByLoginname(model.getAssignee()); OcrMsg msg = new OcrMsg(); msg.setCreateTime(System.currentTimeMillis()); @@ -1331,6 +1333,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask OcrPicture ocrPictureOne = ocrPictureService.getOne(ocrPictureLambdaQueryWrapper); taskchildPicture.setFromUserName(ocrPictureOne.getField1()); taskchildPicture.setPicture(ocrPictureOne); + taskchildPicture.setFinishTime(ocrPictureOne.getSubmitDateTimestamp()); } //查询对应的流程分类 @@ -1460,7 +1463,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask ocrTaskchildPictureApproVo.setFromtaskname(one.getFromtaskname()); //任务名称 ocrTaskchildPictureApproVo.setStatshisText(one.getStatshisText()); //历史-审批状态中文 ocrTaskchildPictureApproVo.setTasknamehis(one.getTasknamehis());//历史-审批节点名称 - ocrTaskchildPictureApproVo.setFinishTime(one.getTransferRecords().get(0).getFinishTime()); //完成时间 + ocrTaskchildPictureApproVo.setFinishTime(one.getFinishTime()); //完成时间 ocrTaskchildPictureApproVo.setReleaseProvince(one.getPicture().getReleaseprovince()); //省份 ocrTaskchildPictureApproVo.setFromprojectid(one.getFromprojectid()); //项目id ocrTaskchildPictureApproVo.setProductName(one.getPicture().getField9()); //产品 diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataobject/Userapprove.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataobject/Userapprove.java index d5e2b882..a366d30d 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataobject/Userapprove.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataobject/Userapprove.java @@ -75,6 +75,12 @@ public class Userapprove implements BaseDto,java.io.Serializable { @Schema(description = "审批意见") @TableField(value="TASKCOMMENT") private String taskcomment; + @Schema(description = "审批不通过原因") + @TableField(value="REASON") + private String reason; + @Schema(description = "审批不通过处理方式") + @TableField(value="PROCESSMETHOD") + private String processMethod; //保存当前登录用户的数据权限范围的搜索条件 @TableField(exist = false) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/service/impl/UserapproveServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/service/impl/UserapproveServiceImpl.java index e5207871..2274baca 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/service/impl/UserapproveServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/service/impl/UserapproveServiceImpl.java @@ -31,6 +31,8 @@ public class UserapproveServiceImpl extends BaseServiceImpl> getSimilarityList(HttpServletRequest request) { - //获取页码、当前页 - String pageNo = request.getParameter("pageNo"); - String pageSize = request.getParameter("pageSize"); - if (StringUtils.isEmpty(pageNo) || StringUtils.isEmpty(pageSize)) { - return ResultVoUtil.error("页码和条数必传!"); - } - String pictureId = request.getParameter("pictureId"); - if (StringUtils.isBlank(pictureId)) { - return ResultVoUtil.error("pictureId必传!"); - } - //租户主键,由前端页面传送 - String tenantId = request.getHeader("X-Tenant-Id"); - if (StringUtils.isBlank(tenantId)) { - return ResultVoUtil.error("租户主键不能为空"); - } - //排序方式 - String orderType = request.getParameter("orderType"); - //排序字段 - String orderValue = request.getParameter("orderName"); - Page similarityList = ocrTaskchildPictureService.getSimilarityList(Integer.valueOf(pageNo), Integer.valueOf(pageSize), pictureId, orderType, orderValue); + public ResultVo> getSimilarityList( + @RequestParam(name = "pageNo") Integer pageNo, + @RequestParam(name = "pageSize") Integer pageSize, + @RequestParam(name = "orderType") String orderType, + @RequestParam(name = "orderName") String orderName, + @RequestParam(name = "pictureId") String pictureId, + HttpServletRequest request) { + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + Page similarityList = ocrTaskchildPictureService.getSimilarityList(pageNo, pageSize, pictureId, orderType, orderName,userToken); return ResultVoUtil.success(similarityList); } @@ -414,8 +402,9 @@ public class OcrTaskchildPictureController extends BaseController { @RequestParam(name = "orderName") String orderName, @RequestParam(name = "checkDuplicateId") String checkDuplicateId, @RequestParam(name = "pictureId") String pictureId, - HttpServletRequest req) { - Page result = ocrTaskchildPictureService.getPackageSimilarityList(pageNo, pageSize, orderType, orderName, checkDuplicateId, pictureId); + HttpServletRequest request) { + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + Page result = ocrTaskchildPictureService.getPackageSimilarityList(pageNo, pageSize, orderType, orderName, checkDuplicateId, pictureId,userToken); return ResultVoUtil.success(result); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPictureAppro.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPictureAppro.java index 9fca97af..14f879d9 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPictureAppro.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPictureAppro.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -21,6 +22,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.AbstractMap.SimpleEntry; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -179,4 +181,7 @@ public class OcrTaskchildPictureAppro implements java.io.Serializable { @ApiModelProperty(value = "picture表数据") private OcrPicture picture; + @ApiModelProperty(value = "提交时间") + private Long finishTime; + } 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 2eac2b0d..a82d610e 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 @@ -3,6 +3,7 @@ package cn.jyjz.xiaoyao.ocr.service; import java.util.List; import java.util.Map; +import cn.jyjz.flowable.entity.FlowApprove; import cn.jyjz.xiaoyao.common.base.param.ParamterPage; import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.UserToken; @@ -51,7 +52,7 @@ public interface OcrTaskchildPictureService extends BaseService formid); + public List validateApprove(List formid); public boolean validateBoole(String[] formid); @@ -61,7 +62,7 @@ public interface OcrTaskchildPictureService extends BaseService formid,UserToken userToken); + public List validateAssignee(List formid,UserToken userToken); /** * 根据主键,查询图片详情 @@ -143,10 +144,10 @@ public interface OcrTaskchildPictureService extends BaseService getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue); + Page getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken); - Page getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId); + Page getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId, UserToken userToken); - void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture,OcrPicture picture); + void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java index ff3fabc5..8f6c225c 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java @@ -1,6 +1,8 @@ package cn.jyjz.xiaoyao.ocr.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.jyjz.xiaoyao.admin.dataobject.User; +import cn.jyjz.xiaoyao.admin.service.UserService; import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskPackageMapper; @@ -16,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -42,6 +45,8 @@ public class OcrTaskPackageServiceImpl extends ServiceImpl formid, UserToken userToken) { + public List validateAssignee(List formid, UserToken userToken) { + List formIds = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("ID", formid); List list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); - //目前没有做其他信息返回,如果需要再做修改 for (OcrTaskchildPicture ocrTaskchildPicture : list) { //判断审批人是否为当前登录用户 if (userToken.getLoginname().equals(ocrTaskchildPicture.getAssignee())) { - - } else { - return false; + formIds.add(ocrTaskchildPicture.getId().toString()); } } - return true; + return formIds; } /** @@ -226,22 +231,20 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl formid) { + public List validateApprove(List formid) { + List formIds = new ArrayList<>(); 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 { - + if (ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_END + && ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE) { + formIds.add(ocrTaskchildPicture.getId().toString()); } } - return true; + return formIds; } @@ -326,6 +329,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue) { + public Page getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken) { OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper().eq(OcrPictureDuplicateHis::getPictureId, pictureId)); Page objectPage = new Page<>(); if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) { - OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, pictureId)); + String userNodeType = ProcessConstant.userNodeType.getOrDefault(userToken.getNodeType(), "一级审批"); JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson()); Set pictureIds = jsonObject.keySet(); - List taskChildPictures = this.getPictureHistoryList(new ArrayList<>(pictureIds), one.getTaskname()); + List taskChildPictures = this.getPictureHistoryList(new ArrayList<>(pictureIds), userNodeType); for (OcrTaskChildPictureVo taskChildPicture : taskChildPictures) { taskChildPicture.setSimilarityScore(Integer.parseInt(jsonObject.getString(taskChildPicture.getPictureId().toString()))); } @@ -683,22 +687,47 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId) { + public Page getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId, UserToken userToken) { Page page = new Page<>(pageNo, pageSize); - OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, pictureId)); + String userNodeType = ProcessConstant.userNodeType.getOrDefault(userToken.getNodeType(), "一级审批"); - return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName,one.getTaskname()); + return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName, userNodeType); } @Override - public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture) { + public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) { 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())); - Integer resultStatus = taskchildPicture.getStates() == SystemConstantsOa.OA_STATUS_TYPE_END ? SystemConstantsOa.OCR_STATUS_SUCCESS : SystemConstantsOa.OCR_STATUS_FAILURE; + flowResultDto.setIsPictureRight(picture.getIztrueorfalse()); + Integer resultStatus = Objects.equals(taskchildPicture.getStates(), SystemConstantsOa.OA_STATUS_TYPE_END) ? SystemConstantsOa.OCR_STATUS_SUCCESS : SystemConstantsOa.OCR_STATUS_FAILURE; flowResultDto.setApproveResult(resultStatus); + flowResultDto.setApproveRemark(flowApprove.getComment()); + List nodeList = new ArrayList<>(); + List userApproves = userapproveService.list(new LambdaQueryWrapper().eq(Userapprove::getFormid, taskchildPicture.getId())); + if (CollectionUtils.isNotEmpty(userApproves)) { + for (Userapprove userApprove : userApproves) { + ApproveNodeDto approveNode = getApproveNodeDto(userApprove); + nodeList.add(approveNode); + } + } + flowResultDto.setApproveDetailList(nodeList); + + } + + private static ApproveNodeDto getApproveNodeDto(Userapprove userApprove) { + ApproveNodeDto approveNode = new ApproveNodeDto(); + approveNode.setApproveRemark(userApprove.getTaskcomment()); + approveNode.setApproveResult(userApprove.getStatshis() == 2 ? 0 : 1); + approveNode.setApproveWay(0); + approveNode.setNodeName(userApprove.getTaskname()); + approveNode.setReason(userApprove.getReason()); + approveNode.setApproveByName(userApprove.getUsername()); + //审批不通过出来方式 + approveNode.setProcessMethod(1); + return approveNode; } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/OcrTaskchildPictureApproVo.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/OcrTaskchildPictureApproVo.java index 1e6faf60..a77390d3 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/OcrTaskchildPictureApproVo.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/OcrTaskchildPictureApproVo.java @@ -36,7 +36,7 @@ public class OcrTaskchildPictureApproVo implements java.io.Serializable { @ApiModelProperty(value = "提交时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private Date finishTime; + private Long finishTime; @ApiModelProperty(value = "拜访地区") private String releaseProvince;