From 878272307efb1ae11dc6354b2694b67a490ec740 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Fri, 23 Aug 2024 23:46:52 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=20=E6=8A=84?= =?UTF-8?q?=E9=80=81=E6=88=91=E7=9A=84=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=AA=E8=83=BD=E6=9F=A5=E8=AF=A2=E7=AC=AC=E4=B8=80=E9=A1=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=20=E6=96=B0=E5=A2=9E=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=A4=84=E7=90=86=E4=B8=AD=E6=B5=81=E7=A8=8B=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E5=AE=A1=E6=A0=B8=E4=BA=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/task/BpmTaskController.java | 2 +- .../task/vo/task/BpmTaskCCPageItemRespVO.java | 10 +++++-- .../bpm/convert/task/BpmTaskConvert.java | 29 ++++++++++++------- .../bpm/dal/mysql/task/BpmTaskExtMapper.java | 3 +- .../bpm/service/task/BpmTaskService.java | 2 +- .../bpm/service/task/BpmTaskServiceImpl.java | 22 +++++++------- 6 files changed, 43 insertions(+), 25 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java index f38aa143..2a79a1aa 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -40,7 +40,7 @@ public class BpmTaskController { @Operation(summary = "获取 cc 抄送任务分页", description = "在【抄送我的】菜单中,进行调用") //@PreAuthorize("@ss.hasPermission('bpm:task:query')") //@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") - public CommonResult> getMyProcessInstancePage( + public CommonResult> getMyProcessInstancePage( @Valid BpmTaskDonePageReqVO pageReqVO) { return success(taskService.getCCTaskPage(SecurityFrameworkUtils.getLoginUserId(), pageReqVO)); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskCCPageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskCCPageItemRespVO.java index 3a608c81..ffbd8b22 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskCCPageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskCCPageItemRespVO.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.ToString; import java.time.LocalDateTime; @@ -35,13 +34,20 @@ public class BpmTaskCCPageItemRespVO { @Schema(description = "任务结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer result; + @Schema(description = "审批建议", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") private String reason; + @Schema(description = "审批人用户编号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long assigneeUser; + + @Schema(description = "审批人用户名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String assigneeUserName; + /** * 所属流程实例 */ - private BpmTaskTodoPageItemRespVO.ProcessInstance processInstance; + private ProcessInstance processInstance; @Data @Schema(description = "流程实例") diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java index 18e3b490..21c5d8c2 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.convert.task; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -7,10 +8,12 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; import cn.iocoder.yudao.module.bpm.enums.task.BpmConstants; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; @@ -24,7 +27,6 @@ import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl; import org.mapstruct.*; import org.mapstruct.factory.Mappers; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -42,19 +44,26 @@ public interface BpmTaskConvert { BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class); - BpmTaskDonePageItemRespVO convertCC(BpmProcessInstanceExtDO bean); - default List convertListCC(List tasks, - Map bpmTaskExtDOMap, - Map historicProcessInstanceMap, - Map userMap) { + BpmTaskCCPageItemRespVO convertCC(BpmProcessInstanceExtDO bean); + default List convertListCC(List tasks, + Map> bpmTaskExtDOMap, + Map historicProcessInstanceMap, + Map userMap) { return CollectionUtils.convertList(tasks, task -> { - BpmTaskDonePageItemRespVO respVO = convertCC(task); - BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId()); - copyTo(taskExtDO, respVO); + BpmTaskCCPageItemRespVO respVO = convertCC(task); + List taskExtDOs = bpmTaskExtDOMap.get(task.getProcessInstanceId()); + HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId()); if (processInstance != null) { AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); - respVO.setProcessInstance(convert(processInstance, startUser)); + respVO.setProcessInstance(BeanUtils.toBean(convert(processInstance, startUser), BpmTaskCCPageItemRespVO.ProcessInstance.class)); + } + + if (!CollectionUtil.isEmpty(taskExtDOs) && task.getResult().equals(BpmProcessInstanceResultEnum.PROCESS.getResult())) { + + BpmTaskExtDO taskExtDO = taskExtDOs.get(0); + respVO.setAssigneeUser(taskExtDO.getAssigneeUserId()); + respVO.setAssigneeUserName(userMap.get(taskExtDO.getAssigneeUserId()).getNickname()); } return respVO; }); diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java index 40f9a8aa..dab3b6fd 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java @@ -49,6 +49,7 @@ public interface BpmTaskExtMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .inIfPresent(BpmTaskExtDO::getProcessInstanceId, processInstanceId) - .eqIfPresent(BpmTaskExtDO::getResult, result)); + .eqIfPresent(BpmTaskExtDO::getResult, result) + .orderByDesc(BpmTaskExtDO::getCreateTime)); } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index 9e3f742e..59b7fa63 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -25,7 +25,7 @@ public interface BpmTaskService { * @param pageReqVO 分页请求 * @return 流程实例的分页 */ - PageResult getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO); + PageResult getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO); /** * 获得待办的流程任务分页 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 310b8262..e6814335 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 @@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.PageUtils; import cn.iocoder.yudao.framework.flowable.core.util.BpmnModelUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -100,11 +101,11 @@ public class BpmTaskServiceImpl implements BpmTaskService { private BpmProcessInstanceExtMapper processInstanceExtMapper; @Override - public PageResult getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) { + public PageResult getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) { // 查询被抄送的Task - BpmProcessInstanceMyPageReqVO reqVO = new BpmProcessInstanceMyPageReqVO(); - reqVO.setName(pageVO.getName()); - reqVO.setCreateTime(pageVO.getCreateTime()); + BpmProcessInstanceMyPageReqVO reqVO = BeanUtils.toBean(pageVO, BpmProcessInstanceMyPageReqVO.class); +// reqVO.setName(pageVO.getName()); +// reqVO.setCreateTime(pageVO.getCreateTime()); // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页 PageResult pageResult = processInstanceExtMapper.selectCCPage(userId, reqVO); if (CollUtil.isEmpty(pageResult.getList())) { @@ -113,20 +114,21 @@ public class BpmTaskServiceImpl implements BpmTaskService { // 获得流程 Task Map List processInstanceIds = convertList(pageResult.getList(), BpmProcessInstanceExtDO::getProcessInstanceId); // 获得 TaskExtDO Map - List bpmTaskExtDOs = - taskExtMapper.selectListByTaskIds(processInstanceIds); - Map bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); + List bpmTaskExtDOs = getTaskByProcessInstanceIdAndResult(processInstanceIds, null); + Map> bpmTaskExtDOMap = convertMultiMap(bpmTaskExtDOs, BpmTaskExtDO::getProcessInstanceId); // 获得 ProcessInstance Map Set ids = new HashSet<>(processInstanceIds); Map historicProcessInstanceMap = processInstanceService.getHistoricProcessInstanceMap(ids); + // 获得 User Map - Map userMap = adminUserApi.getUserMap( - convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); + List userIds = convertList(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())); + userIds.addAll(convertList(bpmTaskExtDOs, BpmTaskExtDO::getAssigneeUserId)); + Map userMap = adminUserApi.getUserMap(new HashSet<>(userIds)); // 拼接结果 - return new PageResult<>(BpmTaskConvert.INSTANCE.convertListCC(pageResult.getList(), bpmTaskExtDOMap, historicProcessInstanceMap, userMap), new Long(pageResult.getTotal())); + return new PageResult<>(BpmTaskConvert.INSTANCE.convertListCC(pageResult.getList(), bpmTaskExtDOMap, historicProcessInstanceMap, userMap), pageResult.getTotal()); } @Override From 1db394a39a644d146c7a963464bc333696d836d1 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Tue, 27 Aug 2024 22:15:47 +0800 Subject: [PATCH 2/2] =?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=20=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8E=20=E8=87=AA=E5=8A=A8=E5=88=86=E9=85=8D=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BpmProcessDefinitionController.java | 2 +- .../admin/oa/BpmOAEntryController.java | 40 ------------------- .../oa/vo/entry/BpmOAEntryCreateReqVO.java | 16 ++++---- .../admin/oa/vo/entry/BpmOAEntryRespVO.java | 16 ++++---- .../bpm/dal/dataobject/oa/BpmOAEntryDO.java | 12 ++++-- .../bpm/service/oa/BpmOAEntryService.java | 8 ---- .../bpm/service/oa/BpmOAEntryServiceImpl.java | 28 ------------- .../bpm/service/task/BpmTaskServiceImpl.java | 3 +- .../dal/dataobject/user/AdminUserDO.java | 6 +++ .../permission/PermissionServiceImpl.java | 2 + .../service/user/AdminUserServiceImpl.java | 6 +++ 11 files changed, 42 insertions(+), 97 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java index d027d876..1c9ab659 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java @@ -47,7 +47,7 @@ public class BpmProcessDefinitionController { BpmProcessDefinitionListReqVO listReqVO) { List respVOS = bpmDefinitionService.getProcessDefinitionList(listReqVO); - respVOS = respVOS.stream().filter(data -> !data.getId().contains("work_task") && !data.getId().contains("oa_entry")).collect(Collectors.toList()); + respVOS = respVOS.stream().filter(data -> !data.getId().contains("work_task")).collect(Collectors.toList()); return success(respVOS); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java index b02819a9..208afd58 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java @@ -1,15 +1,11 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa; -import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.entry.BpmOAEntryCreateReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.entry.BpmOAEntryRespVO; import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAEntryConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAEntryDO; -import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; -import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.service.oa.BpmOAEntryService; -import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.PostApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; @@ -23,7 +19,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.annotation.security.PermitAll; import javax.validation.Valid; -import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -47,9 +42,6 @@ public class BpmOAEntryController { @Resource private PostApi postApi; - @Resource - private BpmTaskService bpmTaskService; - @PostMapping("/create") @Operation(summary = "创建请求申请") @PermitAll @@ -74,38 +66,6 @@ public class BpmOAEntryController { return success(respVO); } - @GetMapping("/getByOpenId") - @Operation(summary = "获得入职申请") - @Parameter(name = "openId", description = "编号", required = true, example = "1024") - @PermitAll - public CommonResult getEntryByOpenId(@RequestParam("openId") String openId) { - - // 查询当前openId 是否存在 - List entryList = entryService.getEntryByOpenId(openId); - - if (CollectionUtil.isEmpty(entryList)) { - return success(null); - } - - BpmOAEntryDO entry = entryList.get(0); - BpmOAEntryRespVO respVO = BpmOAEntryConvert.INSTANCE.convert(entry); - if (entry.getResult().equals(BpmProcessInstanceResultEnum.REJECT.getResult())) { - - // 获得取消流程的 task - BpmTaskExtDO taskExtDO = bpmTaskService.getTaskByProcessInstanceIdAndResult(entry.getProcessInstanceId(), - BpmProcessInstanceResultEnum.REJECT.getResult()); - - respVO.setRemark(taskExtDO.getReason()); - } - - // 设备部门名称 - respVO.setEntryDeptName(getDept(entry.getEntryDeptId()).getName()); - // 设备岗位名称 - respVO.setEntryPostName(getPost(entry.getEntryPostId()).getName()); - - return success(respVO); - } - /** * 获得部门信息 * @param deptId 部门id 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 89533c29..58a60231 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 @@ -27,9 +27,6 @@ public class BpmOAEntryCreateReqVO { @NotNull(message = "发起人的用户编号不能为空") private Long userId; - @Schema(description = "新入职用户编号", example = "6311") - private Long entryUserId; - @Schema(description = "新入职用户部门编号", example = "10237") private Long entryDeptId; @@ -40,6 +37,10 @@ public class BpmOAEntryCreateReqVO { @NotEmpty(message = "用户昵称不能为空") private String nickname; + @Schema(description = "合同公司 | 字典值参考bpm_entry_company", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "合同公司不能为空") + private Integer contractCompany; + @Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "手机号码不能为空") private String mobile; @@ -52,11 +53,12 @@ public class BpmOAEntryCreateReqVO { @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY) private LocalDate entryDate; - @Schema(description = "人脸图片地址") - private String faceImg; + @Schema(description = "面试评价", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "面试评价不能为空") + private String interviewEvaluation; - @Schema(description = "openId", example = "27005") - private String openId; + @Schema(description = "薪资情况", example = "27005") + private String salary; @Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED) private List fileItems; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryRespVO.java index 16d84cc6..550909a2 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryRespVO.java @@ -24,9 +24,6 @@ public class BpmOAEntryRespVO extends BpmOABaseRespVO { @NotNull(message = "发起人的用户编号不能为空") private Long userId; - @Schema(description = "新入职用户编号", example = "6311") - private Long entryUserId; - @Schema(description = "新入职用户部门编号", example = "10237") private Long entryDeptId; @@ -43,6 +40,10 @@ public class BpmOAEntryRespVO extends BpmOABaseRespVO { @NotEmpty(message = "用户昵称不能为空") private String nickname; + @Schema(description = "合同公司 | 字典值参考bpm_entry_company", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "合同公司不能为空") + private Integer contractCompany; + @Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "手机号码不能为空") private String mobile; @@ -54,11 +55,12 @@ public class BpmOAEntryRespVO extends BpmOABaseRespVO { @NotEmpty(message = "入职时间不能为空") private LocalDate entryDate; - @Schema(description = "人脸图片地址") - private String faceImg; + @Schema(description = "面试评价", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "面试评价不能为空") + private String interviewEvaluation; - @Schema(description = "openId", example = "27005") - private String openId; + @Schema(description = "薪资情况", example = "27005") + private String salary; @Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED) private List fileItems; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEntryDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEntryDO.java index 3a920436..a3c72b33 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEntryDO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEntryDO.java @@ -52,6 +52,10 @@ public class BpmOAEntryDO extends BaseDO { * 用户昵称 */ private String nickname; + /** + * 合同公司 | 字典值参考bpm_entry_company + */ + private Integer contractCompany; /** * 手机号码 */ @@ -65,13 +69,13 @@ public class BpmOAEntryDO extends BaseDO { */ private LocalDate entryDate; /** - * 人脸图片地址 + * 面试评价 */ - private String faceImg; + private String interviewEvaluation; /** - * openId + * 薪资情况 */ - private String openId; + private String salary; /** * 附件基本信息 */ diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java index d3dd273c..b98bb697 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java @@ -4,7 +4,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.entry.BpmOAEntryCreate import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAEntryDO; import javax.validation.Valid; -import java.util.List; public interface BpmOAEntryService { @@ -31,11 +30,4 @@ public interface BpmOAEntryService { * @return 入职申请信息 */ BpmOAEntryDO getEntry(Long id); - - /** - * 获得指定入职申请 - * @param openId openId - * @return 入职申请信息 - */ - List getEntryByOpenId(String openId); } 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 58bab62d..1e095f06 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,17 +3,14 @@ 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.mybatis.core.query.LambdaQueryWrapperX; 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; import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile; -import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert; import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAEntryConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAEntryDO; import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAEntryMapper; -import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum; 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; @@ -136,23 +133,6 @@ public class BpmOAEntryServiceImpl implements BpmOAEntryService{ .setUrls(convertList(uploadUserFiles, UploadUserFile::getUrl)) .setUserId(userId); fileApi.updateUserFileUserId(updateReqDTO); - - // 同步修改business_file文件 更新用户编号 - fileApi.updateBusinessFileFormEntry(entry.getFaceImg(), String.valueOf(userId)); - - try { - // 同步插入用户拓展表 - usersExtApi.createUsersExt(userId, entry.getNickname(), entry.getEntryDeptId(), entry.getFaceImg()); - } catch (Exception e) { - - Map templateParams = new HashMap<>(); - templateParams.put("userName", entry.getNickname()); - templateParams.put("detailUrl", webProperties.getAdminUi().getUrl() + "/attendance/user?userName=" + entry.getNickname()); - - // 发送站内信 通知流程发起人, 新员工人脸图片上传失败 - notifyMessageSendApi.sendSingleMessageToAdmin(BpmMessageConvert.INSTANCE.convert1( - entry.getUserId(), BpmMessageEnum.BPM_OA_ENTRY_MESSAGE.getSmsTemplateCode(), templateParams)); - } } } @@ -175,12 +155,4 @@ public class BpmOAEntryServiceImpl implements BpmOAEntryService{ return entryMapper.selectById(id); } - - @Override - public List getEntryByOpenId(String openId) { - - return entryMapper.selectList(new LambdaQueryWrapperX() - .eq(BpmOAEntryDO::getOpenId, openId) - .orderByDesc(BpmOAEntryDO::getCreateTime)); - } } 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 e6814335..cbafc634 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 @@ -753,8 +753,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { //如果当前审批人是流程发起人,且流程不是入职申请时 // 则自动通过当前审批节点 - if (processInstance.getStartUserId().equals(task.getAssignee()) - && !processInstance.getProcessDefinitionId().contains("oa_entry")) { + if (processInstance.getStartUserId().equals(task.getAssignee())) { BpmTaskApproveReqVO reqVO = new BpmTaskApproveReqVO(); reqVO.setId(task.getId()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java index 98aef7de..abf6fceb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java @@ -115,6 +115,12 @@ public class AdminUserDO extends TenantBaseDO { */ private Integer userNature; + /** + * 用户编制 + * 5:试用 6:实习 7:在职 8:离职 + */ + private Integer userStaffing; + /** * 最后登录IP */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java index ba44ad82..448a3e2b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java @@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -57,6 +58,7 @@ public class PermissionServiceImpl implements PermissionService { @Resource private DeptService deptService; @Resource + @Lazy // 延迟,避免循环依赖报错 private AdminUserService userService; @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index b4afa310..40c37edc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -71,6 +71,7 @@ public class AdminUserServiceImpl implements AdminUserService { @Resource private PostService postService; @Resource + @Lazy // 延迟,避免循环依赖报错 private PermissionService permissionService; @Resource private PasswordEncoder passwordEncoder; @@ -116,11 +117,16 @@ public class AdminUserServiceImpl implements AdminUserService { user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码 userMapper.insert(user); + // 插入关联岗位 if (CollectionUtil.isNotEmpty(user.getPostIds())) { userPostMapper.insertBatch(convertList(user.getPostIds(), postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId))); } + + // 默认赋予用户 普通角色 + permissionService.assignUserRole(user.getId(), Collections.singleton(2L)); + return user.getId(); }