Merge branch 'frx' into dev
This commit is contained in:
commit
64bb3778a0
@ -47,7 +47,7 @@ public class BpmProcessDefinitionController {
|
||||
BpmProcessDefinitionListReqVO listReqVO) {
|
||||
|
||||
List<BpmProcessDefinitionRespVO> 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);
|
||||
}
|
||||
|
||||
|
@ -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<BpmOAEntryRespVO> getEntryByOpenId(@RequestParam("openId") String openId) {
|
||||
|
||||
// 查询当前openId 是否存在
|
||||
List<BpmOAEntryDO> 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
|
||||
|
@ -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<UploadUserFile> fileItems;
|
||||
|
@ -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<UploadUserFile> fileItems;
|
||||
|
@ -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<PageResult<BpmTaskDonePageItemRespVO>> getMyProcessInstancePage(
|
||||
public CommonResult<PageResult<BpmTaskCCPageItemRespVO>> getMyProcessInstancePage(
|
||||
@Valid BpmTaskDonePageReqVO pageReqVO) {
|
||||
return success(taskService.getCCTaskPage(SecurityFrameworkUtils.getLoginUserId(), pageReqVO));
|
||||
}
|
||||
|
@ -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 = "流程实例")
|
||||
|
@ -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<BpmTaskDonePageItemRespVO> convertListCC(List<BpmProcessInstanceExtDO> tasks,
|
||||
Map<String, BpmTaskExtDO> bpmTaskExtDOMap,
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap,
|
||||
Map<Long,AdminUserRespDTO> userMap) {
|
||||
BpmTaskCCPageItemRespVO convertCC(BpmProcessInstanceExtDO bean);
|
||||
default List<BpmTaskCCPageItemRespVO> convertListCC(List<BpmProcessInstanceExtDO> tasks,
|
||||
Map<String, List<BpmTaskExtDO>> bpmTaskExtDOMap,
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap,
|
||||
Map<Long,AdminUserRespDTO> userMap) {
|
||||
return CollectionUtils.convertList(tasks, task -> {
|
||||
BpmTaskDonePageItemRespVO respVO = convertCC(task);
|
||||
BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
|
||||
copyTo(taskExtDO, respVO);
|
||||
BpmTaskCCPageItemRespVO respVO = convertCC(task);
|
||||
List<BpmTaskExtDO> 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;
|
||||
});
|
||||
|
@ -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;
|
||||
/**
|
||||
* 附件基本信息
|
||||
*/
|
||||
|
@ -49,6 +49,7 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
||||
|
||||
return selectList(new LambdaQueryWrapperX<BpmTaskExtDO>()
|
||||
.inIfPresent(BpmTaskExtDO::getProcessInstanceId, processInstanceId)
|
||||
.eqIfPresent(BpmTaskExtDO::getResult, result));
|
||||
.eqIfPresent(BpmTaskExtDO::getResult, result)
|
||||
.orderByDesc(BpmTaskExtDO::getCreateTime));
|
||||
}
|
||||
}
|
||||
|
@ -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<BpmOAEntryDO> getEntryByOpenId(String openId);
|
||||
}
|
||||
|
@ -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<String, Object> 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<BpmOAEntryDO> getEntryByOpenId(String openId) {
|
||||
|
||||
return entryMapper.selectList(new LambdaQueryWrapperX<BpmOAEntryDO>()
|
||||
.eq(BpmOAEntryDO::getOpenId, openId)
|
||||
.orderByDesc(BpmOAEntryDO::getCreateTime));
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ public interface BpmTaskService {
|
||||
* @param pageReqVO 分页请求
|
||||
* @return 流程实例的分页
|
||||
*/
|
||||
PageResult<BpmTaskDonePageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO);
|
||||
PageResult<BpmTaskCCPageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得待办的流程任务分页
|
||||
|
@ -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<BpmTaskDonePageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
||||
public PageResult<BpmTaskCCPageItemRespVO> 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<BpmProcessInstanceExtDO> pageResult = processInstanceExtMapper.selectCCPage(userId, reqVO);
|
||||
if (CollUtil.isEmpty(pageResult.getList())) {
|
||||
@ -113,20 +114,21 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
// 获得流程 Task Map
|
||||
List<String> processInstanceIds = convertList(pageResult.getList(), BpmProcessInstanceExtDO::getProcessInstanceId);
|
||||
// 获得 TaskExtDO Map
|
||||
List<BpmTaskExtDO> bpmTaskExtDOs =
|
||||
taskExtMapper.selectListByTaskIds(processInstanceIds);
|
||||
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
||||
List<BpmTaskExtDO> bpmTaskExtDOs = getTaskByProcessInstanceIdAndResult(processInstanceIds, null);
|
||||
Map<String, List<BpmTaskExtDO>> bpmTaskExtDOMap = convertMultiMap(bpmTaskExtDOs, BpmTaskExtDO::getProcessInstanceId);
|
||||
|
||||
// 获得 ProcessInstance Map
|
||||
Set<String> ids = new HashSet<>(processInstanceIds);
|
||||
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
||||
processInstanceService.getHistoricProcessInstanceMap(ids);
|
||||
|
||||
// 获得 User Map
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
||||
convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||
List<Long> userIds = convertList(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()));
|
||||
userIds.addAll(convertList(bpmTaskExtDOs, BpmTaskExtDO::getAssigneeUserId));
|
||||
Map<Long, AdminUserRespDTO> 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
|
||||
@ -751,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());
|
||||
|
@ -115,6 +115,12 @@ public class AdminUserDO extends TenantBaseDO {
|
||||
*/
|
||||
private Integer userNature;
|
||||
|
||||
/**
|
||||
* 用户编制
|
||||
* 5:试用 6:实习 7:在职 8:离职
|
||||
*/
|
||||
private Integer userStaffing;
|
||||
|
||||
/**
|
||||
* 最后登录IP
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user