From 9480a72cd11364c20ee490b82da80195f4a1805a Mon Sep 17 00:00:00 2001 From: sunchenliang <2532527871@qq.com> Date: Wed, 26 Jun 2024 20:42:05 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E9=87=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/dataDao/OcrContractorTaskMapper.java | 13 ++++ .../ocr/dataobject/OcrContractorTask.java | 54 +++++++++++++++++ .../ocr/service/OcrContractorTaskService.java | 14 +++++ .../impl/OcrContractorTaskServiceImpl.java | 19 ++++++ .../impl/OcrTaskchildPictureServiceImpl.java | 59 +++++++++++-------- .../impl/TaskchildPictureServiceImpl.java | 36 ++++++++++- .../mapper/oa/OcrContractorTaskMapper.xml | 17 ++++++ 7 files changed, 186 insertions(+), 26 deletions(-) create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrContractorTaskMapper.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrContractorTask.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrContractorTaskService.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrContractorTaskServiceImpl.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrContractorTaskMapper.xml diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrContractorTaskMapper.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrContractorTaskMapper.java new file mode 100644 index 00000000..aba84759 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrContractorTaskMapper.java @@ -0,0 +1,13 @@ +package cn.jyjz.xiaoyao.ocr.dataDao; + +import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * ClassName: $className$.java + * Description: + * Author: scl. + * Date: 2024/6/23 上午11:20 + */ +public interface OcrContractorTaskMapper extends BaseMapper { +} \ No newline at end of file diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrContractorTask.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrContractorTask.java new file mode 100644 index 00000000..cee17234 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrContractorTask.java @@ -0,0 +1,54 @@ +package cn.jyjz.xiaoyao.ocr.dataobject; + +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 lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * ClassName: $className$.java + * Description: + * Author: scl. + * Date: 2024/6/23 上午11:20 + */ +/** + * 厂商任务审批人关联表 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "ocr_contractor_task") +public class OcrContractorTask { + /** + * 自增id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 服务厂商 + */ + @TableField(value = "contractor") + private String contractor; + + /** + * 租户id + */ + @TableField(value = "tenant_id") + private Long tenantId; + + /** + * 审批用户账号 + */ + @TableField(value = "task_user_assignee") + private String taskUserAssignee; + + /** + * 审批用户名称 + */ + @TableField(value = "task_user_name") + private String taskUserName; +} \ No newline at end of file diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrContractorTaskService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrContractorTaskService.java new file mode 100644 index 00000000..512fbdaa --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrContractorTaskService.java @@ -0,0 +1,14 @@ +package cn.jyjz.xiaoyao.ocr.service; + +import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * ClassName: $className$.java + * Description: + * Author: scl. + * Date: 2024/6/23 上午11:20 + */ +public interface OcrContractorTaskService extends IService{ + + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrContractorTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrContractorTaskServiceImpl.java new file mode 100644 index 00000000..1ede56b7 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrContractorTaskServiceImpl.java @@ -0,0 +1,19 @@ +package cn.jyjz.xiaoyao.ocr.service.impl; + +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask; +import cn.jyjz.xiaoyao.ocr.dataDao.OcrContractorTaskMapper; +import cn.jyjz.xiaoyao.ocr.service.OcrContractorTaskService; +/** + * ClassName: $className$.java + * Description: + * Author: scl. + * Date: 2024/6/23 上午11:20 + */ +@Service +public class OcrContractorTaskServiceImpl extends ServiceImpl implements OcrContractorTaskService{ + +} 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 0237501c..02290ac3 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 @@ -19,18 +19,11 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureDuplicateHis; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro; +import cn.jyjz.xiaoyao.ocr.dataobject.*; import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto; import cn.jyjz.xiaoyao.ocr.dto.FlowResultDto; import cn.jyjz.xiaoyao.ocr.dto.UserapproveDto; -import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService; -import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService; -import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; -import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; +import cn.jyjz.xiaoyao.ocr.service.*; import cn.jyjz.xiaoyao.ocr.vo.OaUserApproveVo; import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo; import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo; @@ -97,6 +90,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper); + List pictureList = ocrPictureService.listByIds(list.stream().map(OcrTaskchildPicture::getPictureid).collect(Collectors.toList())); + Map> picMap = pictureList.stream().collect(Collectors.groupingBy(OcrPicture::getId)); //目前没有做其他信息返回,如果需要再做修改 for (OcrTaskchildPicture ocrTaskchildPicture : list) { + boolean result = true; + OcrPicture first = pictureList.stream().filter(pic -> pic.getId().equals(ocrTaskchildPicture.getPictureid())).findFirst().get(); + if (StringUtils.isNotBlank(first.getField5())) { + List contractorList = contractorTaskService.list(new LambdaQueryWrapper().eq(OcrContractorTask::getContractor, first.getField5()).eq(OcrContractorTask::getTenantId, ocrTaskchildPicture.getTenantid())); + if (CollectionUtils.isNotEmpty(contractorList)) { + List collect = contractorList.stream().map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect) && !collect.contains(userToken.getLoginname())) { + result = false; + } + } + } //判断审批人是否为当前登录用户 - if (ocrTaskchildPicture.getAssignee().contains(userToken.getLoginname()) && + if (result && ocrTaskchildPicture.getAssignee().contains(userToken.getLoginname()) && (ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_END && ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE)) { formIds.add(ocrTaskchildPicture.getId().toString()); @@ -346,7 +355,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl result = ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName); //历史数据,因为没有审核记录所以需要填补最终状态. for (OcrTaskChildPictureVo record : result.getRecords()) { - if((record.getStates()==3 || record.getStates()==5)&& - (record.getHistoryStates()==null || record.getHistoryStates()==1)){ + if ((record.getStates() == 3 || record.getStates() == 5) && + (record.getHistoryStates() == null || record.getHistoryStates() == 1)) { int historyStates = 1; - if(record.getStates()==3){ + if (record.getStates() == 3) { historyStates = 2; - }else if(record.getStates()==5){ + } else if (record.getStates() == 5) { historyStates = 3; } record.setHistoryStates(historyStates); @@ -821,11 +832,11 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl assigneeList = new ArrayList<>(); OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); + OcrPicture first = pictureService.getOne(new LambdaQueryWrapper().eq(OcrPicture::getId, model.getPictureid())); + if (org.apache.commons.lang3.StringUtils.isNotBlank(first.getField5())) { + List contractorList = contractorTaskService.list(new LambdaQueryWrapper().eq(OcrContractorTask::getContractor, first.getField5()).eq(OcrContractorTask::getTenantId, model.getTenantid())); + if (CollectionUtils.isNotEmpty(contractorList)) { + List collect = contractorList.stream().map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList()); + for (String str : assignees) { + if (collect.contains(str)) { + assigneeList.add(str); + } + } + } + } + if (CollectionUtils.isNotEmpty(assigneeList)) { + assignee = String.join(",", assigneeList); + assignees = assignee.split(","); + } model.setProcessinstanceid(processInstanceId); model.setProcessdefinitionid(processdefinitionid); model.setDeploymentid(deploymentid); model.setAssignee(assignee); - if(ObjectUtils.isNotEmpty(task)){ + if (ObjectUtils.isNotEmpty(task)) { model.setTaskname(task.getName()); model.setTaskId(taskId); } + //todo model.setStates(SystemConstantsOa.OA_STATUS_TYPE_ING); //查询审批人姓名 - String[] assignees = assignee.split(","); StringBuffer stringBuffer = new StringBuffer(); for (String tempAssign : assignees) { User user = userService.findByLoginname(tempAssign); diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrContractorTaskMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrContractorTaskMapper.xml new file mode 100644 index 00000000..29291bcc --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrContractorTaskMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + id, contractor, tenant_id, task_user_assignee, task_user_name + + \ No newline at end of file