Compare commits
1 Commits
dev_workchange
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
2120e28698 |
|
|
@ -3,8 +3,8 @@ spring:
|
||||||
import:
|
import:
|
||||||
# - classpath:nacos.yml
|
# - classpath:nacos.yml
|
||||||
# - classpath:sdk.yml
|
# - classpath:sdk.yml
|
||||||
- classpath:nacos-prod.yml
|
|
||||||
- classpath:sdk-prod.yml
|
|
||||||
# - classpath:nacos-prod.yml
|
# - classpath:nacos-prod.yml
|
||||||
# - classpath:sdk-prod2.yml
|
# - classpath:sdk-prod.yml
|
||||||
|
- classpath:nacos-prod.yml
|
||||||
|
- classpath:sdk-prod2.yml
|
||||||
- classpath:swagger.yml
|
- classpath:swagger.yml
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
package com.zcloud.edu.facade;
|
|
||||||
|
|
||||||
import com.alibaba.cola.dto.MultiResponse;
|
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
|
||||||
import com.zcloud.edu.command.query.resource.EduWorkQueryExe;
|
|
||||||
import com.zcloud.edu.command.resource.EduWorkChangeExe;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.facade.ZcloudEduWorkFacade;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.request.EduWorkChangeCmd;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.request.EduWorkQry;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.response.EduListByUserCO;
|
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
@DubboService
|
|
||||||
public class ZcloudEduWorkFacadeImpl implements ZcloudEduWorkFacade {
|
|
||||||
@Resource
|
|
||||||
private EduWorkQueryExe eduWorkQueryExe;
|
|
||||||
@Resource
|
|
||||||
private EduWorkChangeExe eduWorkChangeExe;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MultiResponse<EduListByUserCO> listManagerByUserId(EduWorkQry eduWorkQry) {
|
|
||||||
return MultiResponse.of(eduWorkQueryExe.execute(eduWorkQry));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SingleResponse updateWorkChange(EduWorkChangeCmd eduWorkChangeCmd) {
|
|
||||||
eduWorkChangeExe.execute(eduWorkChangeCmd);
|
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
package com.zcloud.edu.command.query.resource;
|
|
||||||
|
|
||||||
import com.zcloud.edu.persistence.dataobject.TeacherDO;
|
|
||||||
import com.zcloud.edu.persistence.repository.resource.TeacherRepository;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.request.EduWorkQry;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.response.EduListByUserCO;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* web-app
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class EduWorkQueryExe {
|
|
||||||
|
|
||||||
private static final String WORK_PROJECT = "线下培训";
|
|
||||||
private static final String DEFAULT_WORK_CONTENT = "教师信息";
|
|
||||||
|
|
||||||
private final TeacherRepository teacherRepository;
|
|
||||||
|
|
||||||
public List<EduListByUserCO> execute(EduWorkQry qry) {
|
|
||||||
if (qry == null || qry.getUserId() == null || qry.getCorpinfoId() == null) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
List<TeacherDO> teacherDOList = teacherRepository.listWorkByUserId(qry.getUserId(), qry.getCorpinfoId());
|
|
||||||
if (CollectionUtils.isEmpty(teacherDOList)) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
return teacherDOList.stream().map(this::buildWorkInfo).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
private EduListByUserCO buildWorkInfo(TeacherDO teacherDO) {
|
|
||||||
EduListByUserCO eduListByUserCO = new EduListByUserCO();
|
|
||||||
eduListByUserCO.setWorkId(teacherDO.getTeacherId());
|
|
||||||
eduListByUserCO.setWorkProject(WORK_PROJECT);
|
|
||||||
eduListByUserCO.setWorkContent(buildWorkContent(teacherDO));
|
|
||||||
return eduListByUserCO;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String buildWorkContent(TeacherDO teacherDO) {
|
|
||||||
if (teacherDO == null || !StringUtils.hasText(teacherDO.getTeacherName())) {
|
|
||||||
return DEFAULT_WORK_CONTENT;
|
|
||||||
}
|
|
||||||
return "教师:" + teacherDO.getTeacherName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -28,7 +28,6 @@ import com.zcloud.edu.persistence.mapper.po.study.StudentCountByCorpPO;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.*;
|
import com.zcloud.edu.persistence.dataobject.study.*;
|
||||||
import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO;
|
import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO;
|
||||||
import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO;
|
import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO;
|
||||||
import com.zcloud.edu.persistence.repository.resource.CorpInfoRepository;
|
|
||||||
import com.zcloud.edu.persistence.repository.study.*;
|
import com.zcloud.edu.persistence.repository.study.*;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.gbscommon.utils.Tools;
|
import com.zcloud.gbscommon.utils.Tools;
|
||||||
|
|
@ -57,7 +56,6 @@ public class StudentQueryExe {
|
||||||
private final ClassCurriculumRepository classCurriculumRepository;
|
private final ClassCurriculumRepository classCurriculumRepository;
|
||||||
private final ClassCurriculumChapterRepository classCurriculumChapterRepository;
|
private final ClassCurriculumChapterRepository classCurriculumChapterRepository;
|
||||||
private final StudentSignRepository studentSignRepository;
|
private final StudentSignRepository studentSignRepository;
|
||||||
private final CorpInfoRepository corpInfoRepository;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页
|
* 分页
|
||||||
|
|
@ -293,11 +291,6 @@ public class StudentQueryExe {
|
||||||
if (!Tools.isEmpty(params.get("likePhone"))) {
|
if (!Tools.isEmpty(params.get("likePhone"))) {
|
||||||
params.put("phoneArr",String.valueOf(params.get("likePhone")).split(","));
|
params.put("phoneArr",String.valueOf(params.get("likePhone")).split(","));
|
||||||
}
|
}
|
||||||
//如果当前企业是监管端,去掉企业id
|
|
||||||
boolean supper = corpInfoRepository.isSupper();
|
|
||||||
if (supper) {
|
|
||||||
params.remove("eqProjectCorpInfoId");
|
|
||||||
}
|
|
||||||
PageResponse<EducationUserCO> pageResponse = studentRepository.educationUserList(params);
|
PageResponse<EducationUserCO> pageResponse = studentRepository.educationUserList(params);
|
||||||
return pageResponse;
|
return pageResponse;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
package com.zcloud.edu.command.resource;
|
|
||||||
|
|
||||||
import com.alibaba.cola.exception.BizException;
|
|
||||||
import com.zcloud.edu.persistence.dataobject.TeacherDO;
|
|
||||||
import com.zcloud.edu.persistence.repository.resource.TeacherCertificateRepository;
|
|
||||||
import com.zcloud.edu.persistence.repository.resource.TeacherRepository;
|
|
||||||
import com.zcloud.gbscommon.zcloudedu.request.EduWorkChangeCmd;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* web-app
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Slf4j
|
|
||||||
public class EduWorkChangeExe {
|
|
||||||
|
|
||||||
private final TeacherRepository teacherRepository;
|
|
||||||
private final TeacherCertificateRepository teacherCertificateRepository;
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void execute(EduWorkChangeCmd cmd) {
|
|
||||||
validate(cmd);
|
|
||||||
TeacherDO teacherDO = teacherRepository.getByTeacherId(cmd.getWorkId());
|
|
||||||
if (teacherDO == null) {
|
|
||||||
log.info("未查询到可交接的教师工作,{}",cmd.getWorkId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (cmd.getUserId().equals(teacherDO.getUserId())) {
|
|
||||||
log.info("当前用户已接收该教师工作,{}",cmd.getWorkId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!cmd.getOldUserId().equals(teacherDO.getUserId())) {
|
|
||||||
log.info("当前教师工作责任人已变更,无法重复交接,{}",cmd.getWorkId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Long targetCorpinfoId = cmd.getCorpId() != null ? cmd.getCorpId() : teacherDO.getCorpinfoId();
|
|
||||||
Long duplicateCount = teacherRepository.countDuplicateWorkUser(teacherDO.getTeacherId(), cmd.getUserId(), targetCorpinfoId);
|
|
||||||
if (duplicateCount != null && duplicateCount > 0) {
|
|
||||||
throw new BizException("接收人已存在教师工作,不能重复交接");
|
|
||||||
}
|
|
||||||
|
|
||||||
teacherDO.setUserId(cmd.getUserId());
|
|
||||||
teacherDO.setCorpinfoId(targetCorpinfoId);
|
|
||||||
boolean updateResult = teacherRepository.updateById(teacherDO);
|
|
||||||
if (!updateResult) {
|
|
||||||
throw new BizException("工作交接失败");
|
|
||||||
}
|
|
||||||
teacherCertificateRepository.removeByTeacherId(teacherDO.getTeacherId());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validate(EduWorkChangeCmd cmd) {
|
|
||||||
if (cmd == null) {
|
|
||||||
throw new BizException("交接参数不能为空");
|
|
||||||
}
|
|
||||||
if (!StringUtils.hasText(cmd.getWorkId())) {
|
|
||||||
throw new BizException("工作标识不能为空");
|
|
||||||
}
|
|
||||||
if (cmd.getOldUserId() == null) {
|
|
||||||
throw new BizException("原处理人不能为空");
|
|
||||||
}
|
|
||||||
if (cmd.getUserId() == null) {
|
|
||||||
throw new BizException("接收人不能为空");
|
|
||||||
}
|
|
||||||
if (cmd.getOldUserId().equals(cmd.getUserId())) {
|
|
||||||
throw new BizException("原处理人和接收人不能相同");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.zcloud.edu.dto.training;
|
package com.zcloud.edu.dto.training;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.Command;
|
import com.alibaba.cola.dto.Command;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -29,10 +30,12 @@ public class TrainingUserAddCmd extends Command {
|
||||||
|
|
||||||
@ApiModelProperty(value = "有效期开始时间", name = "startTime", required = true)
|
@ApiModelProperty(value = "有效期开始时间", name = "startTime", required = true)
|
||||||
@NotNull(message = "有效期开始时间不能为空")
|
@NotNull(message = "有效期开始时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime startTime;
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "有效期结束时间", name = "endTime", required = true)
|
@ApiModelProperty(value = "有效期结束时间", name = "endTime", required = true)
|
||||||
@NotNull(message = "有效期结束时间不能为空")
|
@NotNull(message = "有效期结束时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "考试状态:1.待考试2:考试通过,3:考试不通过", name = "examineStatus", required = true)
|
@ApiModelProperty(value = "考试状态:1.待考试2:考试通过,3:考试不通过", name = "examineStatus", required = true)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -72,31 +71,5 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl<TeacherMapper, Tea
|
||||||
queryWrapper.in("user_id", userIdList);
|
queryWrapper.in("user_id", userIdList);
|
||||||
return list(queryWrapper);
|
return list(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<TeacherDO> listWorkByUserId(Long userId, Long corpinfoId) {
|
|
||||||
Map<String, Object> params = new HashMap<>(4);
|
|
||||||
params.put("userId", userId);
|
|
||||||
params.put("corpinfoId", corpinfoId);
|
|
||||||
return teacherMapper.getTeacherList(params);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TeacherDO getByTeacherId(String teacherId) {
|
|
||||||
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("teacher_id", teacherId);
|
|
||||||
queryWrapper.eq("delete_enum", "FALSE");
|
|
||||||
return getOne(queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long countDuplicateWorkUser(String teacherId, Long userId, Long corpinfoId) {
|
|
||||||
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("user_id", userId);
|
|
||||||
queryWrapper.eq("corpinfo_id", corpinfoId);
|
|
||||||
queryWrapper.eq("delete_enum", "FALSE");
|
|
||||||
queryWrapper.ne("teacher_id", teacherId);
|
|
||||||
return count(queryWrapper);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,5 @@ public interface TeacherRepository extends BaseRepository<TeacherDO> {
|
||||||
TeacherDO getTeacherInfoByUserId(Long userId);
|
TeacherDO getTeacherInfoByUserId(Long userId);
|
||||||
|
|
||||||
List<TeacherDO> getListByUserIdList(List<Long> userIdList);
|
List<TeacherDO> getListByUserIdList(List<Long> userIdList);
|
||||||
|
|
||||||
List<TeacherDO> listWorkByUserId(Long userId, Long corpinfoId);
|
|
||||||
|
|
||||||
TeacherDO getByTeacherId(String teacherId);
|
|
||||||
|
|
||||||
Long countDuplicateWorkUser(String teacherId, Long userId, Long corpinfoId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@
|
||||||
<if test=" params.corpinfoId != null">
|
<if test=" params.corpinfoId != null">
|
||||||
AND a.corpinfo_id = #{params.corpinfoId}
|
AND a.corpinfo_id = #{params.corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test=" params.userId != null">
|
|
||||||
AND a.user_id = #{params.userId}
|
|
||||||
</if>
|
|
||||||
<if test=" params.state != null">
|
<if test=" params.state != null">
|
||||||
AND a.state = #{params.state}
|
AND a.state = #{params.state}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -593,16 +593,10 @@
|
||||||
left join post po on u.post_id = po.id
|
left join post po on u.post_id = po.id
|
||||||
left join training_user tu on tu.phone = u.phone
|
left join training_user tu on tu.phone = u.phone
|
||||||
LEFT JOIN project_approval_flow paf on paf.project_id = p.id and paf.delete_enum = 'FALSE' and paf.audit_type = 2 and paf.approval_status = 2
|
LEFT JOIN project_approval_flow paf on paf.project_id = p.id and paf.delete_enum = 'FALSE' and paf.audit_type = 2 and paf.approval_status = 2
|
||||||
<if test="params.eqProjectCorpInfoId != null ">
|
|
||||||
and paf.corpinfo_id = #{params.eqProjectCorpInfoId}
|
and paf.corpinfo_id = #{params.eqProjectCorpInfoId}
|
||||||
</if>
|
|
||||||
|
|
||||||
where
|
where
|
||||||
<if test="params.eqProjectCorpInfoId != null ">
|
tap.corpinfo_id = #{params.eqProjectCorpInfoId}
|
||||||
tap.corpinfo_id = #{params.eqProjectCorpInfoId} and
|
and tau.delete_enum = 'FALSE'
|
||||||
</if>
|
|
||||||
|
|
||||||
tau.delete_enum = 'FALSE'
|
|
||||||
and tar.delete_enum = 'FALSE'
|
and tar.delete_enum = 'FALSE'
|
||||||
and tau.apply_status = 2
|
and tau.apply_status = 2
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue