Selaa lähdekoodia

"/student/basestudentcadre/info" 根据id获取学生干部信息

phoenix 1 vuosi sitten
vanhempi
commit
934161ef72
21 muutettua tiedostoa jossa 810 lisäystä ja 39 poistoa
  1. 31 0
      src/main/java/com/xjrsoft/module/liteflow/node/WfTeacherleaveNode.java
  2. 4 4
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentCadreController.java
  3. 11 0
      src/main/java/com/xjrsoft/module/student/dto/WfCadreCandidatePageDto.java
  4. 3 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentCadreMapper.java
  5. 2 0
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentCadreService.java
  6. 6 0
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentCadreServiceImpl.java
  7. 80 29
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentCadreVo.java
  8. 116 0
      src/main/java/com/xjrsoft/module/teacher/controller/WfTeacherleaveController.java
  9. 78 0
      src/main/java/com/xjrsoft/module/teacher/dto/AddWfTeacherleaveDto.java
  10. 32 0
      src/main/java/com/xjrsoft/module/teacher/dto/UpdateWfTeacherleaveDto.java
  11. 26 0
      src/main/java/com/xjrsoft/module/teacher/dto/WfTeacherleavePageDto.java
  12. 5 6
      src/main/java/com/xjrsoft/module/teacher/entity/WfHeadTeacherLeave.java
  13. 91 0
      src/main/java/com/xjrsoft/module/teacher/entity/WfTeacherleave.java
  14. 17 0
      src/main/java/com/xjrsoft/module/teacher/mapper/WfTeacherleaveMapper.java
  15. 18 0
      src/main/java/com/xjrsoft/module/teacher/service/IWfTeacherleaveService.java
  16. 51 0
      src/main/java/com/xjrsoft/module/teacher/service/impl/WfTeacherleaveServiceImpl.java
  17. 104 0
      src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherleavePageVo.java
  18. 79 0
      src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherleaveVo.java
  19. 20 0
      src/main/resources/mapper/student/BaseStudentCadreMapper.xml
  20. 6 0
      src/main/resources/mapper/student/WfCadreCandidateMapper.xml
  21. 30 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 31 - 0
src/main/java/com/xjrsoft/module/liteflow/node/WfTeacherleaveNode.java

@@ -0,0 +1,31 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.oa.service.IFileReceiveService;
+import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ 教师请假流程结束处理
+ */
+@Component("wf_teacherleave_node")
+public class WfTeacherleaveNode extends NodeComponent {
+    @Autowired
+    private IWfTeacherleaveService wfTeacherleaveService;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            wfTeacherleaveService.dataHandle(formId);
+        }
+    }
+}

+ 4 - 4
src/main/java/com/xjrsoft/module/student/controller/BaseStudentCadreController.java

@@ -133,11 +133,12 @@ public class BaseStudentCadreController {
     @ApiOperation(value="根据id查询学生干部管理信息")
     @SaCheckPermission("basestudentcadre:detail")
     public RT<BaseStudentCadreVo> info(@RequestParam Long id){
-        BaseStudentCadre baseStudentCadre = baseStudentCadreService.getById(id);
-        if (baseStudentCadre == null) {
+
+        BaseStudentCadreVo baseStudentCadreVo = baseStudentCadreService.getOneById(id);
+        if (baseStudentCadreVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(baseStudentCadre, BaseStudentCadreVo.class));
+        return RT.ok(baseStudentCadreVo);
     }
 
 
@@ -150,7 +151,6 @@ public class BaseStudentCadreController {
         for (AddBaseStudentCadreDto baseStudentCadreDto : dto) {
             List<BaseStudentCadre> list = baseStudentCadreService.list(
                     Wrappers.lambdaQuery(BaseStudentCadre.class)
-
                             .eq(BaseStudentCadre::getUserId, baseStudentCadreDto.getUserId())
                             .eq(BaseStudentCadre::getPostId, baseStudentCadreDto.getPostId())
             );

+ 11 - 0
src/main/java/com/xjrsoft/module/student/dto/WfCadreCandidatePageDto.java

@@ -26,4 +26,15 @@ public class WfCadreCandidatePageDto extends PageInput {
      */
     @ApiModelProperty("干部部门编号")
     private Long cadreDeptId;
+    /**
+     * 申请人姓名
+     */
+    @ApiModelProperty("申请人姓名")
+    private String applicantUserIdCN;
+    /**
+     * 学号
+     */
+    @ApiModelProperty("学号")
+    private String studentId;
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentCadreMapper.java

@@ -6,6 +6,7 @@ import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.dto.BaseStudentCadrePageDto;
 import com.xjrsoft.module.student.entity.BaseStudentCadre;
 import com.xjrsoft.module.student.vo.BaseStudentCadrePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentCadreVo;
 import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -19,4 +20,6 @@ import org.apache.ibatis.annotations.Mapper;
 public interface BaseStudentCadreMapper extends MPJBaseMapper<BaseStudentCadre> {
 
     IPage<BaseStudentCadrePageVo> getListPage(IPage<BaseStudentCadrePageDto> page, BaseStudentCadrePageDto dto);
+
+    BaseStudentCadreVo getOneById(Long id);
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentCadreService.java

@@ -8,6 +8,7 @@ import com.xjrsoft.module.student.dto.UpdateBaseStudentCadreDto;
 import com.xjrsoft.module.student.entity.BaseStudentCadre;
 import com.xjrsoft.module.student.entity.BaseStudentUser;
 import com.xjrsoft.module.student.vo.BaseStudentCadrePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentCadreVo;
 import lombok.Data;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -47,5 +48,6 @@ public interface IBaseStudentCadreService extends MPJBaseService<BaseStudentCadr
      */
     Boolean editMobileStatus(UpdateBaseStudentCadreDto dto);
 
+    BaseStudentCadreVo getOneById(Long id);
 
 }

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

@@ -15,6 +15,7 @@ import com.xjrsoft.module.student.entity.BaseStudentCadre;
 import com.xjrsoft.module.student.mapper.BaseStudentCadreMapper;
 import com.xjrsoft.module.student.service.IBaseStudentCadreService;
 import com.xjrsoft.module.student.vo.BaseStudentCadrePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentCadreVo;
 import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -69,4 +70,9 @@ public class BaseStudentCadreServiceImpl extends MPJBaseServiceImpl<BaseStudentC
         BaseStudentCadre baseStudentCadre = BeanUtil.toBean(dto, BaseStudentCadre.class);
         return updateById(baseStudentCadre);
     }
+
+    @Override
+    public BaseStudentCadreVo getOneById(Long id) {
+        return baseStudentCadreMapper.getOneById(id);
+    }
 }

+ 80 - 29
src/main/java/com/xjrsoft/module/student/vo/BaseStudentCadreVo.java

@@ -1,5 +1,8 @@
 package com.xjrsoft.module.student.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -19,61 +22,109 @@ import java.util.Date;
 public class BaseStudentCadreVo {
 
     /**
-    * 主键编号
-    */
+     * 主键编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
     @ApiModelProperty("主键编号")
-    private Long id;
-    /**
-    * 序号
-    */
-    @ApiModelProperty("序号")
-    private Integer sortCode;
+    private String id;
+
     /**
-    * 学生id
-    */
+     * 学生id
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学生id")
     @ApiModelProperty("学生id")
     private Long userId;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学生姓名")
+    @ApiModelProperty("学生姓名")
+    private String userName;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学号")
+    @ApiModelProperty("学号")
+    private String studentId;
     /**
-    * 班级id
-    */
+     * 班级id
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级id")
     @ApiModelProperty("班级id")
     private Long classId;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级名称")
+    @ApiModelProperty("班级名称")
+    private String className;
     /**
-    * 职务id
-    */
+     * 职务id
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("职务id")
     @ApiModelProperty("职务id")
     private Long postId;
+
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("职务")
+    @ApiModelProperty("职务")
+    private String post;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("职务级别")
+    @ApiModelProperty("职务级别")
+    private String level;
     /**
-    * 干部部门编号
-    */
+     * 干部部门编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("干部部门编号")
     @ApiModelProperty("干部部门编号")
     private Long cadreDeptId;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("干部部门编号")
+    @ApiModelProperty("干部部门编号")
+    private String cadreDeptIdCN;
+
     /**
-    * 任职开始时间
-    */
+     * 任职开始时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("任职开始时间")
     @ApiModelProperty("任职开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
     /**
-    * 任职结束时间
-    */
+     * 任职结束时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("任职结束时间")
     @ApiModelProperty("任职结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
     /**
-    * 状态(1:在职 0:离职)
-    */
+     * 状态(1:在职 0:离职)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:在职 0:离职)")
     @ApiModelProperty("状态(1:在职 0:离职)")
     private Integer status;
     /**
-    * 离职生效日期
-    */
+     * 离职生效日期
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("离职生效日期")
     @ApiModelProperty("离职生效日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date leaveTime;
     /**
-    * 离职原因
-    */
+     * 离职原因
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("离职原因")
     @ApiModelProperty("离职原因")
     private String leaveReason;
-
-
-
 }

+ 116 - 0
src/main/java/com/xjrsoft/module/teacher/controller/WfTeacherleaveController.java

@@ -0,0 +1,116 @@
+package com.xjrsoft.module.teacher.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.teacher.dto.AddWfTeacherleaveDto;
+import com.xjrsoft.module.teacher.dto.UpdateWfTeacherleaveDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.teacher.dto.WfTeacherleavePageDto;
+import com.xjrsoft.module.teacher.entity.WfTeacherleave;
+import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
+import com.xjrsoft.module.teacher.vo.WfTeacherleavePageVo;
+
+import com.xjrsoft.module.teacher.vo.WfTeacherleaveVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/teacher" + "/wfTeacherleave")
+@Api(value = "/teacher"  + "/wfTeacherleave",tags = "教职工请假流程代码")
+@AllArgsConstructor
+public class WfTeacherleaveController {
+
+
+    private final IWfTeacherleaveService wfTeacherleaveService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="教职工请假流程列表(分页)")
+    @SaCheckPermission("wfteacherleave:detail")
+    public RT<PageOutput<WfTeacherleavePageVo>> page(@Valid WfTeacherleavePageDto dto){
+
+        LambdaQueryWrapper<WfTeacherleave> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(WfTeacherleave::getId)
+                .select(WfTeacherleave.class,x -> VoToColumnUtil.fieldsToColumns(WfTeacherleavePageVo.class).contains(x.getProperty()));
+        IPage<WfTeacherleave> page = wfTeacherleaveService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<WfTeacherleavePageVo> pageOutput = ConventPage.getPageOutput(page, WfTeacherleavePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询教职工请假流程信息")
+    @SaCheckPermission("wfteacherleave:detail")
+    public RT<WfTeacherleaveVo> info(@RequestParam Long id){
+        WfTeacherleave wfTeacherleave = wfTeacherleaveService.getById(id);
+        if (wfTeacherleave == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfTeacherleave, WfTeacherleaveVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增教职工请假流程")
+    @SaCheckPermission("wfteacherleave:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfTeacherleaveDto dto){
+        WfTeacherleave wfTeacherleave = BeanUtil.toBean(dto, WfTeacherleave.class);
+        boolean isSuccess = wfTeacherleaveService.save(wfTeacherleave);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改教职工请假流程")
+    @SaCheckPermission("wfteacherleave:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfTeacherleaveDto dto){
+
+        WfTeacherleave wfTeacherleave = BeanUtil.toBean(dto, WfTeacherleave.class);
+        return RT.ok(wfTeacherleaveService.updateById(wfTeacherleave));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除教职工请假流程")
+    @SaCheckPermission("wfteacherleave:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfTeacherleaveService.removeBatchByIds(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfTeacherleavePageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfTeacherleavePageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfTeacherleavePageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfTeacherleavePageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfTeacherleave" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 78 - 0
src/main/java/com/xjrsoft/module/teacher/dto/AddWfTeacherleaveDto.java

@@ -0,0 +1,78 @@
+package com.xjrsoft.module.teacher.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+public class AddWfTeacherleaveDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private String userId;
+    /**
+    * 是否中层
+    */
+    @ApiModelProperty("是否中层")
+    private String middleLevelOrNot;
+    /**
+    * 所在部门
+    */
+    @ApiModelProperty("所在部门")
+    private String department;
+    /**
+    * 是否班主任
+    */
+    @ApiModelProperty("是否班主任")
+    private String isItAHomeroomTeacher;
+    /**
+    * 请假事由
+    */
+    @ApiModelProperty("请假事由")
+    private String reasonForLeave;
+    /**
+    * 请假开始时间
+    */
+    @ApiModelProperty("请假开始时间")
+    private Date leaveStartTime;
+    /**
+    * 请假天数
+    */
+    @ApiModelProperty("请假天数")
+    private Double leaveDays;
+    /**
+    * 请假结束时间
+    */
+    @ApiModelProperty("请假结束时间")
+    private Date leaveEndTime;
+    /**
+    * 请假类型
+    */
+    @ApiModelProperty("请假类型")
+    private String leaveType;
+    /**
+    * 附件
+    */
+    @ApiModelProperty("附件")
+    private String annex;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/teacher/dto/UpdateWfTeacherleaveDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.teacher.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+public class UpdateWfTeacherleaveDto extends AddWfTeacherleaveDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/teacher/dto/WfTeacherleavePageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.teacher.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 教职工请假流程分页查询入参
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfTeacherleavePageDto extends PageInput {
+
+
+}

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

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

+ 91 - 0
src/main/java/com/xjrsoft/module/teacher/entity/WfTeacherleave.java

@@ -0,0 +1,91 @@
+package com.xjrsoft.module.teacher.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+@TableName("wf_teacherleave")
+@ApiModel(value = "wf_teacherleave", description = "教职工请假流程")
+public class WfTeacherleave implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long userId;
+    /**
+    * 是否中层
+    */
+    @ApiModelProperty("是否中层")
+    private String middleLevelOrNot;
+    /**
+    * 所在部门
+    */
+    @ApiModelProperty("所在部门")
+    private String department;
+    /**
+    * 是否班主任
+    */
+    @ApiModelProperty("是否班主任")
+    private String isItAHomeroomTeacher;
+    /**
+    * 请假事由
+    */
+    @ApiModelProperty("请假事由")
+    private String reasonForLeave;
+    /**
+    * 请假开始时间
+    */
+    @ApiModelProperty("请假开始时间")
+    private Date leaveStartTime;
+    /**
+    * 请假天数
+    */
+    @ApiModelProperty("请假天数")
+    private Double leaveDays;
+    /**
+    * 请假结束时间
+    */
+    @ApiModelProperty("请假结束时间")
+    private Date leaveEndTime;
+    /**
+    * 请假类型
+    */
+    @ApiModelProperty("请假类型")
+    private String leaveType;
+    /**
+    * 附件
+    */
+    @ApiModelProperty("附件")
+    private String annex;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/teacher/mapper/WfTeacherleaveMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.teacher.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.teacher.entity.WfTeacherleave;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Mapper
+public interface WfTeacherleaveMapper extends MPJBaseMapper<WfTeacherleave> {
+
+}

+ 18 - 0
src/main/java/com/xjrsoft/module/teacher/service/IWfTeacherleaveService.java

@@ -0,0 +1,18 @@
+package com.xjrsoft.module.teacher.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.entity.WfTeacherleave;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+
+public interface IWfTeacherleaveService extends MPJBaseService<WfTeacherleave> {
+    Boolean dataHandle(Long dataId);
+}

+ 51 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/WfTeacherleaveServiceImpl.java

@@ -0,0 +1,51 @@
+package com.xjrsoft.module.teacher.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.teacher.entity.WfHeadTeacherLeave;
+import com.xjrsoft.module.teacher.entity.WfTeacherleave;
+import com.xjrsoft.module.teacher.mapper.WfTeacherleaveMapper;
+import com.xjrsoft.module.teacher.service.IWfHeadTeacherLeaveService;
+import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 教职工请假流程
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfTeacherleaveServiceImpl extends MPJBaseServiceImpl<WfTeacherleaveMapper, WfTeacherleave> implements IWfTeacherleaveService {
+
+    private final IWfHeadTeacherLeaveService wfHeadTeacherLeaveService;
+    @Override
+    public Boolean dataHandle(Long dataId) {
+        WfTeacherleave wfTeacherleave = this.getById(dataId);
+        //如果请假老师是班主任,将信息同步到班主任事项请假
+        if(wfTeacherleave.getIsItAHomeroomTeacher().equals("是")){
+            WfHeadTeacherLeave wfHeadTeacherLeave = new WfHeadTeacherLeave();
+            wfHeadTeacherLeave.setWfTeacherleaveId(wfTeacherleave.getId());
+            wfHeadTeacherLeave.setApplicantUserId(wfTeacherleave.getUserId());
+            /*
+             * 如果是周一到周四的上午,自动同步请假类型为“早自习、课间操”的数据到班主任事项请假列表,
+             * 如果是周五下午自动同步请假类型为“学生放假”的数据到班主任事项请假列表。
+            */
+            //wfHeadTeacherLeave.setApplicantUserId(wfTeacherleave.getUserId());
+
+
+            wfHeadTeacherLeave.setStartTime(wfTeacherleave.getLeaveStartTime());
+            wfHeadTeacherLeave.setEndTime(wfTeacherleave.getLeaveEndTime());
+            wfHeadTeacherLeave.setRemark(wfTeacherleave.getReasonForLeave());
+            return wfHeadTeacherLeaveService.save(wfHeadTeacherLeave);
+        }
+        return false;
+    }
+}

+ 104 - 0
src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherleavePageVo.java

@@ -0,0 +1,104 @@
+package com.xjrsoft.module.teacher.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 教职工请假流程分页列表出参
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+public class WfTeacherleavePageVo {
+
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 申请人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private String userId;
+    /**
+    * 是否中层
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否中层")
+    @ApiModelProperty("是否中层")
+    private String middleLevelOrNot;
+    /**
+    * 所在部门
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("所在部门")
+    @ApiModelProperty("所在部门")
+    private String department;
+    /**
+    * 是否班主任
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否班主任")
+    @ApiModelProperty("是否班主任")
+    private String isItAHomeroomTeacher;
+    /**
+    * 请假事由
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假事由")
+    @ApiModelProperty("请假事由")
+    private String reasonForLeave;
+    /**
+    * 请假开始时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假开始时间")
+    @ApiModelProperty("请假开始时间")
+    private Date leaveStartTime;
+    /**
+    * 请假天数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假天数")
+    @ApiModelProperty("请假天数")
+    private Double leaveDays;
+    /**
+    * 请假结束时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假结束时间")
+    @ApiModelProperty("请假结束时间")
+    private Date leaveEndTime;
+    /**
+    * 请假类型
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假类型")
+    @ApiModelProperty("请假类型")
+    private String leaveType;
+    /**
+    * 附件
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("附件")
+    @ApiModelProperty("附件")
+    private String annex;
+
+}

+ 79 - 0
src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherleaveVo.java

@@ -0,0 +1,79 @@
+package com.xjrsoft.module.teacher.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 教职工请假流程表单出参
+* @Author szs
+* @Date: 2023-12-20
+* @Version 1.0
+*/
+@Data
+public class WfTeacherleaveVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private String userId;
+    /**
+    * 是否中层
+    */
+    @ApiModelProperty("是否中层")
+    private String middleLevelOrNot;
+    /**
+    * 所在部门
+    */
+    @ApiModelProperty("所在部门")
+    private String department;
+    /**
+    * 是否班主任
+    */
+    @ApiModelProperty("是否班主任")
+    private String isItAHomeroomTeacher;
+    /**
+    * 请假事由
+    */
+    @ApiModelProperty("请假事由")
+    private String reasonForLeave;
+    /**
+    * 请假开始时间
+    */
+    @ApiModelProperty("请假开始时间")
+    private Date leaveStartTime;
+    /**
+    * 请假天数
+    */
+    @ApiModelProperty("请假天数")
+    private Double leaveDays;
+    /**
+    * 请假结束时间
+    */
+    @ApiModelProperty("请假结束时间")
+    private Date leaveEndTime;
+    /**
+    * 请假类型
+    */
+    @ApiModelProperty("请假类型")
+    private String leaveType;
+    /**
+    * 附件
+    */
+    @ApiModelProperty("附件")
+    private String annex;
+
+
+
+}

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

@@ -49,4 +49,24 @@
         </if>
         order by t.id
     </select>
+
+    <select id="getOneById"
+            resultType="com.xjrsoft.module.student.vo.BaseStudentCadreVo">
+        SELECT
+        t.*,
+        t1.name as userName,
+        t2.student_id as studentId,
+        t3.name as className,
+        t4.post as post,
+        t4.level as level,
+        t5.name as cadreDeptIdCN
+        FROM base_student_cadre t
+        LEFT JOIN xjr_user t1 ON (t1.id = t.user_id)
+        LEFT JOIN base_student t2 ON (t2.user_id = t.user_id)
+        LEFT JOIN base_class t3 ON (t3.id = t.class_id)
+        LEFT JOIN base_student_post t4 ON (t4.id = t.post_id)
+        LEFT JOIN cadre_dept t5 ON (t5.id = t.cadre_dept_id)
+        WHERE t.delete_mark = 0
+            and t.id = #{id}
+    </select>
 </mapper>

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

@@ -18,6 +18,12 @@
         <if test="dto.cadreDeptId != null and dto.cadreDeptId > 0">
             and t.cadre_dept_id = #{dto.cadreDeptId}
         </if>
+        <if test="dto.applicantUserIdCN != null and dto.applicantUserIdCN != ''">
+            and t1.name like concat('%',#{dto.applicantUserIdCN},'%')
+        </if>
+        <if test="dto.studentId != null and dto.studentId != ''">
+            and t.student_id = #{dto.studentId}
+        </if>
         order by t.id
     </select>
 </mapper>

+ 30 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -1132,4 +1132,34 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+    /**
+     * 教师请假
+     *
+     */
+    @Test
+    public void gcWfTeacherleave() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_teacherleave");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("szs");//作者名称
+        params.setPackageName("teacher");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
+
 }