|
@@ -1,11 +1,28 @@
|
|
|
package com.qmth.distributed.print.business.activiti;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.qmth.distributed.print.business.entity.ExamTask;
|
|
|
+import com.qmth.distributed.print.business.service.ExamTaskService;
|
|
|
+import com.qmth.teachcloud.common.entity.BasicCourse;
|
|
|
+import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
+import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
|
+import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
+import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
+import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import org.activiti.engine.delegate.DelegateTask;
|
|
|
import org.activiti.engine.delegate.TaskListener;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.data.domain.Example;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
* @Description: 教研室主任审批
|
|
@@ -17,9 +34,51 @@ import java.util.Arrays;
|
|
|
public class DirectorApproveListener implements TaskListener {
|
|
|
private final static Logger log = LoggerFactory.getLogger(DirectorApproveListener.class);
|
|
|
|
|
|
+ @Resource
|
|
|
+ SysOrgService sysOrgService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ ExamTaskService examTaskService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ BasicCourseService basicCourseService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysUserService sysUserService;
|
|
|
+
|
|
|
+
|
|
|
+ * 查找同级和以下人员
|
|
|
+ *
|
|
|
+ * @param delegateTask
|
|
|
+ */
|
|
|
@Override
|
|
|
public void notify(DelegateTask delegateTask) {
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
+ String flowId = delegateTask.getProcessInstanceId();
|
|
|
+ QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
|
|
|
+ examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(flowId));
|
|
|
+ ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
|
|
|
+
|
|
|
+ QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
|
|
|
+ basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, sysUser.getSchoolId())
|
|
|
+ .eq(BasicCourse::getCode, examTask.getCourseCode());
|
|
|
+ BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
|
|
|
+
|
|
|
+ if (Objects.isNull(basicCourse)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("课程数据为空");
|
|
|
+ }
|
|
|
+ if (Objects.isNull(basicCourse.getOrgId())) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("课程机构为空");
|
|
|
+ }
|
|
|
+ List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getOrgId());
|
|
|
+ Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
|
|
|
+ sysUserQueryWrapper.lambda().eq(SysUser::getSchoolId, sysUser.getSchoolId())
|
|
|
+ .in(SysUser::getOrgId, orgIds);
|
|
|
+ List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
|
|
|
+ List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
|
|
|
|
|
|
- delegateTask.addCandidateUsers(Arrays.asList("4", "8"));
|
|
|
+ delegateTask.addCandidateUsers(ids);
|
|
|
}
|
|
|
}
|