Browse Source

毕业管理接口

phoenix 1 year ago
parent
commit
912b40a4d8

+ 2 - 4
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultIndexPageDto.java

@@ -5,8 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.time.LocalDateTime;
-
 
 /**
 * @title: 评价结果分页查询入参
@@ -45,12 +43,12 @@ public class EvaluateResultIndexPageDto extends PageInput {
      * 开始时间
      */
     @ApiModelProperty("开始时间")
-    private LocalDateTime startTime;
+    private String startTime;
 
     /**
      * 结束时间
      */
     @ApiModelProperty("结束时间")
-    private LocalDateTime endTime;
+    private String endTime;
 
 }

+ 6 - 21
src/main/java/com/xjrsoft/module/student/controller/BaseStudentGraduateController.java

@@ -19,14 +19,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
@@ -64,20 +57,19 @@ public class BaseStudentGraduateController {
     @ApiOperation(value="根据id查询学生毕业管理信息")
     @SaCheckPermission("basestudentgraduate:detail")
     public RT<BaseStudentGraduateVo> info(@RequestParam Long id){
-        BaseStudentGraduate baseStudentGraduate = baseStudentGraduateService.getById(id);
-        if (baseStudentGraduate == null) {
+        BaseStudentGraduateVo baseStudentGraduateVo = baseStudentGraduateService.getInfoById(id);
+        if (baseStudentGraduateVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(baseStudentGraduate, BaseStudentGraduateVo.class));
+        return RT.ok(baseStudentGraduateVo);
     }
 
 
     @PostMapping
-    @ApiOperation(value = "新增学生毕业管理")
+    @ApiOperation(value = "毕业登记")
     @SaCheckPermission("basestudentgraduate:add")
     public RT<Boolean> add(@Valid @RequestBody AddBaseStudentGraduateDto dto){
-        BaseStudentGraduate baseStudentGraduate = BeanUtil.toBean(dto, BaseStudentGraduate.class);
-        boolean isSuccess = baseStudentGraduateService.save(baseStudentGraduate);
+        boolean isSuccess = baseStudentGraduateService.addOne(dto);
         return RT.ok(isSuccess);
     }
 
@@ -91,13 +83,6 @@ public class BaseStudentGraduateController {
 
     }
 
-    @DeleteMapping
-    @ApiOperation(value = "删除学生毕业管理")
-    @SaCheckPermission("basestudentgraduate:delete")
-    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(baseStudentGraduateService.removeBatchByIds(ids));
-
-    }
     @PostMapping("/import")
     @ApiOperation(value = "导入")
     public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {

+ 6 - 6
src/main/java/com/xjrsoft/module/student/dto/BaseStudentGraduatePageDto.java

@@ -4,12 +4,6 @@ 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;
 
 
 /**
@@ -36,4 +30,10 @@ public class BaseStudentGraduatePageDto extends PageInput {
 
     @ApiModelProperty("证书编号")
     public String certificateNumber;
+
+    @ApiModelProperty("年级id")
+    public Long gradeId;
+
+    @ApiModelProperty("班级id")
+    public Long classId;
 }

+ 4 - 1
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentGraduateMapper.java

@@ -1,12 +1,13 @@
 package com.xjrsoft.module.student.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.dto.BaseStudentGraduatePageDto;
 import com.xjrsoft.module.student.entity.BaseStudentGraduate;
 import com.xjrsoft.module.student.vo.BaseStudentGraduatePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentGraduateVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @title: 学生毕业管理
@@ -24,4 +25,6 @@ public interface BaseStudentGraduateMapper extends MPJBaseMapper<BaseStudentGrad
      * @return
      */
     Page<BaseStudentGraduatePageVo> getPage(Page<BaseStudentGraduatePageDto> page, BaseStudentGraduatePageDto dto);
+
+    BaseStudentGraduateVo getInfoById(@Param("id") Long id);
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentGraduateService.java

@@ -2,9 +2,11 @@ package com.xjrsoft.module.student.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.AddBaseStudentGraduateDto;
 import com.xjrsoft.module.student.dto.BaseStudentGraduatePageDto;
 import com.xjrsoft.module.student.entity.BaseStudentGraduate;
 import com.xjrsoft.module.student.vo.BaseStudentGraduatePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentGraduateVo;
 
 /**
 * @title: 学生毕业管理
@@ -22,4 +24,10 @@ public interface IBaseStudentGraduateService extends MPJBaseService<BaseStudentG
      * @return
      */
     Page<BaseStudentGraduatePageVo> getPage(Page<BaseStudentGraduatePageDto> page, BaseStudentGraduatePageDto dto);
+
+    BaseStudentGraduateVo getInfoById(Long id);
+
+    Boolean addOne(AddBaseStudentGraduateDto dto);
+
+
 }

+ 49 - 1
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentGraduateServiceImpl.java

@@ -1,17 +1,29 @@
 package com.xjrsoft.module.student.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.ArchivesStatusEnum;
+import com.xjrsoft.module.student.dto.AddBaseStudentGraduateDto;
 import com.xjrsoft.module.student.dto.BaseStudentGraduatePageDto;
 import com.xjrsoft.module.student.entity.BaseStudentGraduate;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.mapper.BaseStudentGraduateMapper;
+import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
 import com.xjrsoft.module.student.service.IBaseStudentGraduateService;
 import com.xjrsoft.module.student.vo.BaseStudentGraduatePageVo;
+import com.xjrsoft.module.student.vo.BaseStudentGraduateVo;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
 
 /**
 * @title: 学生毕业管理
@@ -24,13 +36,49 @@ import org.springframework.stereotype.Service;
 public class BaseStudentGraduateServiceImpl extends MPJBaseServiceImpl<BaseStudentGraduateMapper, BaseStudentGraduate> implements IBaseStudentGraduateService {
     private final BaseStudentGraduateMapper baseStudentGraduateMapper;
 
+    private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
+
     private final IFileService fileService;
     @Override
     public Page<BaseStudentGraduatePageVo> getPage(Page<BaseStudentGraduatePageDto> page, BaseStudentGraduatePageDto dto) {
         Page<BaseStudentGraduatePageVo> voPage = baseStudentGraduateMapper.getPage(page, dto);
         for (BaseStudentGraduatePageVo record : voPage.getRecords()) {
-            record.setFileInfos(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId,record.getFolderId())));
+            if(record.getFolderId() != null){
+                record.setFileInfos(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId,record.getFolderId())));
+            }
         }
         return voPage;
     }
+
+    @Override
+    public BaseStudentGraduateVo getInfoById(Long id) {
+        BaseStudentGraduateVo baseStudentGraduateVo = baseStudentGraduateMapper.getInfoById(id);
+        if(baseStudentGraduateVo != null && baseStudentGraduateVo.getFolderId() != null){
+            baseStudentGraduateVo.setFileInfos(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId,baseStudentGraduateVo.getFolderId())));
+        }
+        return baseStudentGraduateVo;
+    }
+
+    @Override
+    @Transactional
+    public Boolean addOne(AddBaseStudentGraduateDto dto) {
+        BaseStudentGraduate baseStudentGraduate = BeanUtil.toBean(dto, BaseStudentGraduate.class);
+        baseStudentGraduate.setCreateUserId(StpUtil.getLoginIdAsLong());
+        baseStudentGraduate.setCreateDate(new Date());
+        QueryWrapper<BaseStudentGraduate> queryWrapperSortcode = new QueryWrapper<>();
+        queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
+        BaseStudentGraduate t = this.getOne(queryWrapperSortcode);
+        baseStudentGraduate.setSortCode(t.getSortCode() + 1);
+        //修改学籍状态
+        LambdaQueryWrapper<BaseStudentSchoolRoll> baseStudentSchoolRollLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        baseStudentSchoolRollLambdaQueryWrapper
+                .eq(BaseStudentSchoolRoll::getUserId, dto.getUserId());
+         baseStudentSchoolRollMapper.update(new BaseStudentSchoolRoll(){{
+            setArchivesStatus(ArchivesStatusEnum.FB2907.getCode());
+        }}, baseStudentSchoolRollLambdaQueryWrapper);
+
+        //保存毕业信息
+        this.save(baseStudentGraduate);
+        return true;
+    }
 }

+ 0 - 4
src/main/java/com/xjrsoft/module/student/vo/BaseStudentGraduatePageVo.java

@@ -81,7 +81,6 @@ public class BaseStudentGraduatePageVo {
     @ExcelProperty("发证日期")
     @ApiModelProperty("发证日期")
     private Date certificateDate;
-
     /**
      * 班级名称
      */
@@ -89,7 +88,6 @@ public class BaseStudentGraduatePageVo {
     @ExcelProperty("班级名称")
     @ApiModelProperty("班级名称")
     private String className;
-
     /**
      * 年级名称
      */
@@ -97,8 +95,6 @@ public class BaseStudentGraduatePageVo {
     @ExcelProperty("年级名称")
     @ApiModelProperty("年级名称")
     private String gradeName;
-
-
     /**
      * 附件id
      */

+ 37 - 10
src/main/java/com/xjrsoft/module/student/vo/BaseStudentGraduateVo.java

@@ -1,13 +1,13 @@
 package com.xjrsoft.module.student.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.xjrsoft.module.system.entity.File;
 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;
+import java.util.List;
 
 /**
 * @title: 学生毕业管理表单出参
@@ -24,15 +24,38 @@ public class BaseStudentGraduateVo {
     @ApiModelProperty("主键编号")
     private Long id;
     /**
-    * 序号
-    */
-    @ApiModelProperty("序号")
-    private Integer sortCode;
-    /**
     * 学生(xjr_user)
     */
     @ApiModelProperty("学生(xjr_user)")
     private Long userId;
+    /**
+     * 学籍号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学籍号")
+    @ApiModelProperty("学籍号")
+    private String studentId;
+    /**
+     * 学生姓名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学生姓名")
+    @ApiModelProperty("学生姓名")
+    private String name;
+    /**
+     * 专业
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("专业")
+    @ApiModelProperty("专业")
+    private String majorName;
+    /**
+     * 修改时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("就读方式")
+    @ApiModelProperty("就读方式")
+    private String stduyStatusCn;
     /**
     * 证书编号
     */
@@ -59,6 +82,10 @@ public class BaseStudentGraduateVo {
     @ApiModelProperty("证书发放状态(0:未发放 1:已发放)")
     private Integer status;
 
-
+    /**
+     * 公文附件列表
+     */
+    @ApiModelProperty("公文附件列表")
+    private List<File> fileInfos;
 
 }

+ 30 - 10
src/main/resources/mapper/student/BaseStudentGraduateMapper.xml

@@ -5,7 +5,7 @@
 <mapper namespace="com.xjrsoft.module.student.mapper.BaseStudentGraduateMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.student.dto.BaseStudentGraduatePageDto" resultType="com.xjrsoft.module.student.vo.BaseStudentGraduatePageVo">
         SELECT t5.id,t1.user_id,t1.student_id,t2.name,t4.name AS major_name,t6.name AS stduy_status_cn,
-        IFNULL(t5.status,0) AS STATUS,t5.certificate_number,t5.certificate_date,t7.name AS class_name,t8.name AS grade_name,t5.folder_id FROM base_student t1
+        IFNULL(t5.status,0) AS status,t5.certificate_number,t5.certificate_date,t7.name AS class_name,t8.name AS grade_name,t5.folder_id FROM base_student t1
         LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
         LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
         LEFT JOIN base_major_set t4 ON t3.major_set_id = t4.id
@@ -15,20 +15,40 @@
         LEFT JOIN base_grade t8 ON t8.id = t3.grade_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
         AND t3.delete_mark = 0
-        <if test="dto.archivesStatus != null and dto.archivesStatus != ''">
-            and t3.archives_status = #{dto.archivesStatus}
+        <if test="dto.gradeId != null and dto.gradeId > 0">
+            and t3.grade_id = #{dto.gradeId}
+        </if>
+        <if test="dto.classId != null and dto.classId > 0">
+            and t3.class_id = #{dto.classId}
         </if>
         <if test="dto.archivesStatus != null and dto.archivesStatus != ''">
             and t3.archives_status = #{dto.archivesStatus}
         </if>
+        <if test="dto.name != null and dto.name != ''">
+            and t2.name like concat('%',#{dto.name}, '%')
+        </if>
+        <if test="dto.studentId != null and dto.studentId > 0">
+            and t1.student_id = #{dto.studentId}
+        </if>
+        <if test="dto.status != null">
+            and t5.status = #{dto.status}
+        </if>
+        <if test="dto.certificateNumber != null and dto.certificateNumber != ''">
+            and t5.certificate_number = #{dto.certificateNumber}
+        </if>
     </select>
-    <!--姓名和性别,测试阶段采用姓名第一个字拼接user_id的方式脱敏-->
-    <select id="getJianyueStudentList" resultType="com.xjrsoft.module.schedule.vo.StudentJianyuekbVo">
-        SELECT t1.id AS registerNo, CONCAT(SUBSTRING(t2.name,1,1),t2.id) AS realName,t3.grade_id AS gradeSerialNo,CONCAT(SUBSTRING(t2.name,1,1),t2.id) AS alias,t2.gender,t2.id AS extendId FROM base_student t1
-        INNER JOIN xjr_user t2 ON t1.user_id = t2.id
-        INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
+    <select id="getInfoById" resultType="com.xjrsoft.module.student.vo.BaseStudentGraduateVo">
+        SELECT t5.id,t1.user_id,t1.student_id,t2.name,t4.name AS major_name,t6.name AS stduy_status_cn,
+        IFNULL(t5.status,0) AS status,t5.certificate_number,t5.certificate_date,t7.name AS class_name,t8.name AS grade_name,t5.folder_id FROM base_student t1
+        LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
+        LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
+        LEFT JOIN base_major_set t4 ON t3.major_set_id = t4.id
+        LEFT JOIN base_student_graduate t5 ON t1.user_id = t5.user_id
+        LEFT JOIN xjr_dictionary_detail t6 ON t3.stduy_status = t6.code AND t6.item_id = 2023000000000000030
+        LEFT JOIN base_class t7 ON t7.id = t3.class_id
+        LEFT JOIN base_grade t8 ON t8.id = t3.grade_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
-        AND t1.student_id IS NOT NULL AND t1.student_id != ''
-        AND t3.archives_status = 'FB2901';
+        AND t3.delete_mark = 0
+        AND t1.user_id = #{id}
     </select>
 </mapper>

+ 0 - 1
src/test/java/com/xjrsoft/xjrsoftboot/ScheduleFlowTest.java

@@ -7,7 +7,6 @@ import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import com.xjrsoft.XjrSoftApplication;
-import com.xjrsoft.config.JianyuekbConfig;
 import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.mapper.JianyueMapper;
 import org.junit.jupiter.api.Test;

+ 14 - 0
src/test/java/com/xjrsoft/xjrsoftboot/StrTest.java

@@ -1,10 +1,15 @@
 package com.xjrsoft.xjrsoftboot;
 
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.Db;
+import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.common.utils.DatasourceUtil;
 import lombok.Data;
 import org.junit.jupiter.api.Test;
 
+import javax.sql.DataSource;
+import java.sql.SQLException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.DayOfWeek;
@@ -188,4 +193,13 @@ public class StrTest {
         str = str.replace("“", "").replace("”", "").replace("\"", "").replace("\n", "").replace("\r", "").replace("\t", "");
         System.out.println(str);
     }
+
+    @Test
+    public void sortCodeTest() throws SQLException {
+        DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
+        Db use = Db.use(datasource);
+        String sql = "SELECT max(sort_code) FROM evaluate_template";
+        int sortCodeMax = use.queryNumber(sql, Integer.class).intValue();
+        System.err.println(sortCodeMax);
+    }
 }