Ver código fonte

教职工列表增加字段

大数据与最优化研究所 8 meses atrás
pai
commit
57d722f59f

+ 2 - 2
src/main/java/com/xjrsoft/module/organization/controller/UserController.java

@@ -730,10 +730,10 @@ public class UserController {
         return RT.ok(userService.bindOpenid(dto));
     }
 
-    @GetMapping("/unbind-openid")
+    @PostMapping("/unbind-openid")
     @ApiOperation(value = "取消绑定微信 UnionId")
     @XjrLog(value = "取消绑定微信 UnionId", saveResponseData = true)
-    public R unbindOpenid(@RequestParam UnbindOpenidDto dto) {
+    public R unbindOpenid(@RequestBody UnbindOpenidDto dto) {
         return R.ok(userService.unbindOpenid(dto));
     }
 

+ 41 - 3
src/main/java/com/xjrsoft/module/teacher/controller/TeacherbaseManagerController.java

@@ -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);

+ 0 - 2
src/main/java/com/xjrsoft/module/teacher/entity/BaseTeacherRegular.java

@@ -116,6 +116,4 @@ public class BaseTeacherRegular implements Serializable {
      */
     @ApiModelProperty("任教学科(base_course_subject)")
     private Long courseSubjectId;
-
-
 }

+ 26 - 1
src/main/java/com/xjrsoft/module/teacher/vo/XjrUserPageVo.java

@@ -1,5 +1,8 @@
 package com.xjrsoft.module.teacher.vo;
 
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -81,20 +84,42 @@ public class XjrUserPageVo {
      */
     @ApiModelProperty("在职状态")
     private String jobState;
+    /**
+     * 在职状态
+     */
+    @ApiModelProperty("在职状态")
+    private String jobStateCn;
     /**
      * 聘用方式(xjr_dictionary_item[employ_type])上级聘用类型
      */
     @ApiModelProperty("聘用方式(xjr_dictionary_item[employ_type])上级聘用类型")
     private String employWay;
+    /**
+     * 聘用类型(xjr_dictionary_item[employ_type])
+     */
+    @ApiModelProperty("聘用类型(xjr_dictionary_item[employ_type])")
+    private String employType;
+    /**
+     * 聘用方式(xjr_dictionary_item[employ_type])上级聘用类型
+     */
+    @ApiModelProperty("聘用方式(xjr_dictionary_item[employ_type])上级聘用类型")
+    private String employTypeCn;
     /**
      * 手机号
      */
     @ApiModelProperty("手机号")
     private String mobile;
-
     /**
      * 来校年月
      */
     @ApiModelProperty("来校年月")
     private Date joinTime;
+    /**
+     * 任课状况(xjr_dictionary_item[teaching_status])多选
+     */
+    @ApiModelProperty("任课状况(xjr_dictionary_item[teaching_status])多选")
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private JSONArray teachingStatus;
+
+    private String teachingStatusCn;
 }