Procházet zdrojové kódy

/student/wfCadreCandidate 干部候选人接口优化

phoenix před 1 rokem
rodič
revize
c63987d02e

+ 17 - 12
src/main/java/com/xjrsoft/module/student/controller/CadreDeptController.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
@@ -31,6 +32,7 @@ import com.xjrsoft.module.student.vo.CadreDeptPageVo;
 
 import com.xjrsoft.module.student.vo.CadreDeptTreeVo;
 import com.xjrsoft.module.student.vo.CadreDeptVo;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -60,11 +62,13 @@ public class CadreDeptController {
     @SaCheckPermission("cadredept:detail")
     public RT<PageOutput<CadreDeptPageVo>> page(@Valid CadreDeptPageDto dto){
 
-        LambdaQueryWrapper<CadreDept> queryWrapper = new LambdaQueryWrapper<>();
+        MPJLambdaWrapper<CadreDept> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
-                    .orderByDesc(CadreDept::getId)
-                .select(CadreDept.class,x -> VoToColumnUtil.fieldsToColumns(CadreDeptPageVo.class).contains(x.getProperty()));
-        IPage<CadreDept> page = cadreDeptService.page(ConventPage.getPage(dto), queryWrapper);
+                .selectAs(XjrUser::getName, CadreDeptTreeVo::getInstructorUserIdCN)
+                .select(CadreDept.class, x -> VoToColumnUtil.fieldsToColumns(CadreDeptPageVo.class).contains(x.getProperty()))
+                .leftJoin(XjrUser.class, XjrUser::getId, CadreDept::getInstructorUserId)
+                .orderByDesc(CadreDept::getId);
+        IPage<CadreDeptPageVo> page = cadreDeptService.selectJoinListPage(ConventPage.getPage(dto),CadreDeptPageVo.class, queryWrapper);
         PageOutput<CadreDeptPageVo> pageOutput = ConventPage.getPageOutput(page, CadreDeptPageVo.class);
         return RT.ok(pageOutput);
     }
@@ -73,15 +77,18 @@ public class CadreDeptController {
     @ApiOperation(value = "干部部门树")
     @SaCheckPermission("cadredept:detail")
     public RT<List<CadreDeptTreeVo>> tree(CadreDeptTreeDto dto) {
-
-        List<CadreDept> list = cadreDeptService.list(Wrappers.<CadreDept>lambdaQuery()
-                .select(CadreDept.class, x -> VoToColumnUtil.fieldsToColumns(CadreDeptTreeVo.class).contains(x.getProperty())));
-
-        List<CadreDeptTreeVo> voList = BeanUtil.copyToList(list, CadreDeptTreeVo.class);
-        List<CadreDeptTreeVo> treeVoList = TreeUtil.build(voList);
+        List<CadreDeptTreeVo> treeVoList = cadreDeptService.getCadreDeptTree(dto);
         return RT.ok(treeVoList);
     }
 
+    @PutMapping("/updateInstructorUser")
+    @ApiOperation(value = "部门(添加/修改)部门指导教师用户编号")
+    @SaCheckPermission("cadredept:edit")
+    public RT<Boolean> updateInstructorUser(@Valid @RequestBody UpdateCadreDeptDto dto){
+        CadreDept cadreDept = BeanUtil.toBean(dto, CadreDept.class);
+        return RT.ok(cadreDeptService.updateById(cadreDept));
+    }
+
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询干部部门信息")
     @SaCheckPermission("cadredept:detail")
@@ -93,7 +100,6 @@ public class CadreDeptController {
         return RT.ok(BeanUtil.toBean(cadreDept, CadreDeptVo.class));
     }
 
-
     @PostMapping
     @ApiOperation(value = "新增干部部门")
     @SaCheckPermission("cadredept:add")
@@ -125,7 +131,6 @@ public class CadreDeptController {
         }
         CadreDept cadreDept = BeanUtil.toBean(dto, CadreDept.class);
         return RT.ok(cadreDeptService.updateById(cadreDept));
-
     }
 
     @DeleteMapping

+ 6 - 5
src/main/java/com/xjrsoft/module/student/controller/WfCadreCandidateController.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.xjrsoft.common.page.ConventPage;
@@ -17,11 +18,15 @@ import com.xjrsoft.module.student.dto.UpdateWfCadreCandidateDto;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 
 import com.xjrsoft.module.student.dto.WfCadreCandidatePageDto;
+import com.xjrsoft.module.student.entity.CadreDept;
 import com.xjrsoft.module.student.entity.WfCadreCandidate;
 import com.xjrsoft.module.student.service.IWfCadreCandidateService;
+import com.xjrsoft.module.student.vo.CadreDeptPageVo;
+import com.xjrsoft.module.student.vo.CadreDeptTreeVo;
 import com.xjrsoft.module.student.vo.WfCadreCandidatePageVo;
 
 import com.xjrsoft.module.student.vo.WfCadreCandidateVo;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -51,11 +56,7 @@ public class WfCadreCandidateController {
     @SaCheckPermission("wfcadrecandidate:detail")
     public RT<PageOutput<WfCadreCandidatePageVo>> page(@Valid WfCadreCandidatePageDto dto){
 
-        LambdaQueryWrapper<WfCadreCandidate> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(WfCadreCandidate::getId)
-                .select(WfCadreCandidate.class,x -> VoToColumnUtil.fieldsToColumns(WfCadreCandidatePageVo.class).contains(x.getProperty()));
-        IPage<WfCadreCandidate> page = wfCadreCandidateService.page(ConventPage.getPage(dto), queryWrapper);
+        IPage<WfCadreCandidatePageVo> page = wfCadreCandidateService.getListPage(dto);
         PageOutput<WfCadreCandidatePageVo> pageOutput = ConventPage.getPageOutput(page, WfCadreCandidatePageVo.class);
         return RT.ok(pageOutput);
     }

+ 5 - 0
src/main/java/com/xjrsoft/module/student/entity/CadreDept.java

@@ -88,6 +88,11 @@ public class CadreDept implements Serializable {
     */
     @ApiModelProperty("部门上级编号")
     private Long parentId;
+    /**
+     * 部门指导教师用户编号
+     */
+    @ApiModelProperty("部门指导教师用户编号")
+    private Long instructorUserId;
     /**
     * 编码
     */

+ 6 - 1
src/main/java/com/xjrsoft/module/student/mapper/WfCadreCandidateMapper.java

@@ -1,8 +1,13 @@
 package com.xjrsoft.module.student.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.student.dto.WfCadreCandidatePageDto;
 import com.xjrsoft.module.student.entity.WfCadreCandidate;
+import com.xjrsoft.module.student.vo.WfCadreCandidatePageVo;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -13,5 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
 */
 @Mapper
 public interface WfCadreCandidateMapper extends MPJBaseMapper<WfCadreCandidate> {
-
+    IPage<WfCadreCandidatePageVo> getListPage(IPage<WfCadreCandidatePageDto> page, WfCadreCandidatePageDto dto);
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/student/service/ICadreDeptService.java

@@ -2,7 +2,9 @@ package com.xjrsoft.module.student.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.CadreDeptTreeDto;
 import com.xjrsoft.module.student.entity.CadreDept;
+import com.xjrsoft.module.student.vo.CadreDeptTreeVo;
 import lombok.Data;
 import java.util.List;
 
@@ -14,4 +16,8 @@ import java.util.List;
 */
 
 public interface ICadreDeptService extends MPJBaseService<CadreDept> {
+
+    List<CadreDeptTreeVo> getCadreDeptTree();
+
+    List<CadreDeptTreeVo> getCadreDeptTree(CadreDeptTreeDto dto);
 }

+ 7 - 0
src/main/java/com/xjrsoft/module/student/service/IWfCadreCandidateService.java

@@ -1,8 +1,13 @@
 package com.xjrsoft.module.student.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.WfCadreCandidatePageDto;
 import com.xjrsoft.module.student.entity.WfCadreCandidate;
+import com.xjrsoft.module.student.vo.WfCadreCandidatePageVo;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import lombok.Data;
 import java.util.List;
 
@@ -14,4 +19,6 @@ import java.util.List;
 */
 
 public interface IWfCadreCandidateService extends MPJBaseService<WfCadreCandidate> {
+
+    IPage<WfCadreCandidatePageVo> getListPage(WfCadreCandidatePageDto dto);
 }

+ 30 - 0
src/main/java/com/xjrsoft/module/student/service/impl/CadreDeptServiceImpl.java

@@ -1,10 +1,20 @@
 package com.xjrsoft.module.student.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.utils.TreeUtil;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.student.dto.CadreDeptTreeDto;
 import com.xjrsoft.module.student.entity.CadreDept;
 import com.xjrsoft.module.student.mapper.CadreDeptMapper;
 import com.xjrsoft.module.student.service.ICadreDeptService;
+import com.xjrsoft.module.student.vo.CadreDeptTreeVo;
+import com.xjrsoft.module.teacher.entity.AttendanceRecord;
+import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.teacher.vo.AttendanceRecordPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,4 +32,24 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class CadreDeptServiceImpl extends MPJBaseServiceImpl<CadreDeptMapper, CadreDept> implements ICadreDeptService {
+    @Override
+    public List<CadreDeptTreeVo> getCadreDeptTree() {
+        CadreDeptTreeDto dto = new CadreDeptTreeDto();
+        return getCadreDeptTree(dto);
+    }
+
+    @Override
+    public List<CadreDeptTreeVo> getCadreDeptTree(CadreDeptTreeDto dto) {
+        MPJLambdaWrapper<CadreDept> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .selectAs(XjrUser::getName, CadreDeptTreeVo::getInstructorUserIdCN)
+                .select(CadreDept.class, x -> VoToColumnUtil.fieldsToColumns(CadreDeptTreeVo.class).contains(x.getProperty()))
+                .leftJoin(XjrUser.class, XjrUser::getId, CadreDept::getInstructorUserId)
+                .orderByDesc(CadreDept::getId);
+
+        List<CadreDeptTreeVo> list = this.selectJoinList(CadreDeptTreeVo.class,queryWrapper);
+
+        List<CadreDeptTreeVo> treeVoList = TreeUtil.build(list);
+        return treeVoList;
+    }
 }

+ 12 - 0
src/main/java/com/xjrsoft/module/student/service/impl/WfCadreCandidateServiceImpl.java

@@ -1,10 +1,16 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.module.student.dto.WfCadreCandidatePageDto;
 import com.xjrsoft.module.student.entity.WfCadreCandidate;
 import com.xjrsoft.module.student.mapper.WfCadreCandidateMapper;
 import com.xjrsoft.module.student.service.IWfCadreCandidateService;
+import com.xjrsoft.module.student.vo.WfCadreCandidatePageVo;
+import com.xjrsoft.module.teacher.mapper.AttendancePersonnelMapper;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,4 +28,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class WfCadreCandidateServiceImpl extends MPJBaseServiceImpl<WfCadreCandidateMapper, WfCadreCandidate> implements IWfCadreCandidateService {
+
+    private final WfCadreCandidateMapper wfCadreCandidateMapper;
+    @Override
+    public IPage<WfCadreCandidatePageVo> getListPage(WfCadreCandidatePageDto dto) {
+        return wfCadreCandidateMapper.getListPage(ConventPage.getPage(dto),dto);
+    }
 }

+ 10 - 0
src/main/java/com/xjrsoft/module/student/vo/CadreDeptTreeVo.java

@@ -33,6 +33,16 @@ public class CadreDeptTreeVo implements ITreeNode<CadreDeptTreeVo,Long>, Seriali
     */
     @ApiModelProperty("部门上级编号")
     private Long parentId;
+    /**
+     * 部门指导教师用户编号
+     */
+    @ApiModelProperty("部门指导教师用户编号")
+    private Long instructorUserId;
+    /**
+     * 部门指导教师用户姓名
+     */
+    @ApiModelProperty("部门指导教师用户姓名")
+    private String instructorUserIdCN;
     /**
     * 编码
     */

+ 15 - 35
src/main/java/com/xjrsoft/module/student/vo/WfCadreCandidatePageVo.java

@@ -26,45 +26,15 @@ public class WfCadreCandidatePageVo {
     @ApiModelProperty("主键编号")
     private String id;
     /**
-    * 创建人
-    */
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
-    * 创建时间
-    */
-    @ApiModelProperty("创建时间")
-    private Date createDate;
-    /**
-    * 修改人
-    */
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
-    @ApiModelProperty("修改时间")
-    private Date modifyDate;
-    /**
-    * 删除标记
-    */
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
-    /**
-    * 有效标志
-    */
-    @ApiModelProperty("有效标志")
-    private Integer enabledMark;
-    /**
-    * 序号
-    */
-    @ApiModelProperty("序号")
-    private Integer sortCode;
-    /**
     * 申请人
     */
     @ApiModelProperty("申请人")
     private Long applicantUserId;
+    /**
+     * 申请人姓名
+     */
+    @ApiModelProperty("申请人姓名")
+    private String applicantUserIdCN;
     /**
     * 学号
     */
@@ -80,6 +50,11 @@ public class WfCadreCandidatePageVo {
     */
     @ApiModelProperty("干部部门编号")
     private Long cadreDeptId;
+    /**
+     * 干部部门名称
+     */
+    @ApiModelProperty("干部部门名称")
+    private String cadreDeptIdCN;
     /**
     * 班级名称
     */
@@ -90,6 +65,11 @@ public class WfCadreCandidatePageVo {
     */
     @ApiModelProperty("部门指导教师用户编号")
     private Long instructorUserId;
+    /**
+     * 部门指导教师用户姓名
+     */
+    @ApiModelProperty("部门指导教师用户姓名")
+    private String instructorUserIdCN;
     /**
     * 备注
     */

+ 5 - 1
src/main/java/com/xjrsoft/module/teacher/entity/WfHeadTeacherLeave.java

@@ -118,6 +118,10 @@ public class WfHeadTeacherLeave implements Serializable {
     */
     @ApiModelProperty("状态(1:结束 0:未结束)")
     private Integer status;
-
+    /**
+     * 教职工请假编号
+     */
+    @ApiModelProperty("教职工请假编号")
+    private Long wfTeacherleaveId;
 
 }

+ 20 - 0
src/main/resources/mapper/student/WfCadreCandidateMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.student.mapper.WfCadreCandidateMapper">
+    <select id="getListPage" parameterType="com.xjrsoft.module.student.dto.WfCadreCandidatePageDto"
+            resultType="com.xjrsoft.module.student.vo.WfCadreCandidatePageVo">
+        SELECT
+            t.*,
+            t1.name as applicantUserIdCN,
+            t2.name as cadreDeptIdCN,
+            t3.name as instructorUserIdCN
+        FROM wf_cadre_candidate t
+                 LEFT JOIN xjr_user t1 ON (t1.id = t.applicant_user_id)
+                 LEFT JOIN cadre_dept t2 ON (t2.id = t.cadre_dept_id)
+                 LEFT JOIN xjr_user t3 ON (t3.id = t.instructor_user_id)
+        WHERE t.delete_mark = 0
+        order by t.id
+    </select>
+</mapper>