|
|
@@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -23,10 +24,13 @@ import com.xjrsoft.module.organization.entity.UserPostRelation;
|
|
|
import com.xjrsoft.module.organization.service.IUserDeptRelationService;
|
|
|
import com.xjrsoft.module.organization.service.IUserPostRelationService;
|
|
|
import com.xjrsoft.module.system.entity.DictionaryDetail;
|
|
|
+import com.xjrsoft.module.system.entity.DictionaryItem;
|
|
|
+import com.xjrsoft.module.system.service.IDictionarydetailService;
|
|
|
import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
|
|
|
import com.xjrsoft.module.teacher.dto.UpdateXjrUserDto;
|
|
|
import com.xjrsoft.module.teacher.dto.XjrUserPageDto;
|
|
|
import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
|
+import com.xjrsoft.module.teacher.entity.BaseTeacherRegular;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
|
|
|
import com.xjrsoft.module.teacher.vo.XjrUserPageVo;
|
|
|
@@ -34,12 +38,14 @@ import com.xjrsoft.module.teacher.vo.XjrUserVo;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.text.ParseException;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -60,6 +66,7 @@ public class TeacherbaseManagerController {
|
|
|
private final ITeacherbaseManagerService teacherbaseManagerService;
|
|
|
private final IUserDeptRelationService userDeptRelationService;
|
|
|
private final IUserPostRelationService userPostRelationService;
|
|
|
+ private final IDictionarydetailService dictionarydetailService;
|
|
|
|
|
|
@GetMapping(value = "/page")
|
|
|
@ApiOperation(value = "XjrUser列表(分页)")
|
|
|
@@ -83,19 +90,22 @@ public class TeacherbaseManagerController {
|
|
|
.selectAs(BaseTeacher::getJoinTime, XjrUserPageVo::getJoinTime)
|
|
|
.leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BaseTeacher::getJobState,
|
|
|
ext -> ext
|
|
|
- .selectAs(DictionaryDetail::getName, XjrUserPageVo::getJobState)
|
|
|
+ .selectAs(DictionaryDetail::getName, XjrUserPageVo::getJobStateCn)
|
|
|
)
|
|
|
.leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BaseTeacher::getEmployType,
|
|
|
ext -> ext
|
|
|
- .selectAs(DictionaryDetail::getName, XjrUserPageVo::getEmployWay)
|
|
|
+ .selectAs(DictionaryDetail::getName, XjrUserPageVo::getEmployTypeCn)
|
|
|
)
|
|
|
)
|
|
|
+ .leftJoin(BaseTeacherRegular.class, BaseTeacherRegular::getUserId, XjrUser::getId,
|
|
|
+ ext -> ext
|
|
|
+ .selectAs(BaseTeacherRegular::getTeachingStatus, XjrUserPageVo::getTeachingStatus)
|
|
|
+ )
|
|
|
.leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, XjrUser::getCredentialType,
|
|
|
ext -> ext
|
|
|
.selectAs(DictionaryDetail::getName, XjrUserPageVo::getCredentialType)
|
|
|
)
|
|
|
|
|
|
-
|
|
|
.selectAsClass(BaseTeacher.class, XjrUserPageVo.class);
|
|
|
|
|
|
if (ObjectUtil.isAllNotEmpty(dto.getDepartmentId()) && dto.getDepartmentId() != 0) {
|
|
|
@@ -108,8 +118,36 @@ public class TeacherbaseManagerController {
|
|
|
|
|
|
PageOutput<XjrUserPageVo> pageOutput = ConventPage.getPageOutput(page, XjrUserPageVo.class);
|
|
|
|
|
|
+ // 处理任课状况字典值
|
|
|
+ List<DictionaryDetail> detailList = dictionarydetailService.list(
|
|
|
+ new MPJLambdaWrapper<DictionaryDetail>()
|
|
|
+ .select(DictionaryDetail::getId)
|
|
|
+ .select(DictionaryDetail.class, x -> VoToColumnUtil.fieldsToColumns(DictionaryDetail.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(DictionaryItem.class, DictionaryItem::getId, DictionaryDetail::getItemId)
|
|
|
+ .eq(DictionaryItem::getCode, "job_state")
|
|
|
+ );
|
|
|
+
|
|
|
+ Map<String, String> dictionaryDetailMap = new HashMap<>();
|
|
|
+ for (DictionaryDetail dictionaryDetail : detailList) {
|
|
|
+ dictionaryDetailMap.put(dictionaryDetail.getCode(), dictionaryDetail.getName());
|
|
|
+ }
|
|
|
+
|
|
|
for (XjrUserPageVo record : pageOutput.getList()) {
|
|
|
record.setGenderCn(GenderDictionaryEnum.getValue(record.getGender()));
|
|
|
+ // 处理任课状况
|
|
|
+ if(ObjectUtils.isNotEmpty(record.getTeachingStatus()) && ObjectUtils.isNotEmpty(dictionaryDetailMap)){
|
|
|
+ JSONArray jsonArray = record.getTeachingStatus();
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ String code = jsonArray.getString(i);
|
|
|
+ String name = dictionaryDetailMap.get(code);
|
|
|
+ sb.append(name).append(",");
|
|
|
+ }
|
|
|
+ if(sb.length() > 0){
|
|
|
+ sb.setLength(sb.length() - 1);
|
|
|
+ }
|
|
|
+ record.setTeachingStatusCn(sb.toString());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return R.ok(pageOutput);
|