Преглед на файлове

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/main/java/com/xjrsoft/module/student/controller/BaseStudentCadreController.java
dzx142631 преди 2 години
родител
ревизия
47c8c16dfa

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

@@ -86,12 +86,13 @@ public class BaseStudentCadreController {
                 .selectAs(XjrUser::getMobile, BaseStudentCadre::getMobile)
                 .selectAs(BaseMajorSet::getName, BaseStudentCadre::getMajorSetName)
                 .selectAs(BaseGrade::getName, BaseStudentCadre::getGradeName)
+                .select(BaseStudentCadre::getId)
                 .select(BaseStudentCadre.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentCadrePageVo.class).contains(x.getProperty()))
                 .innerJoin(XjrUser.class, XjrUser::getId, BaseStudentCadre::getUserId)
                 .innerJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentCadre::getUserId)
                 .innerJoin(BaseStudentPost.class, BaseStudentPost::getId, BaseStudentCadre::getPostId)
+                .innerJoin(BaseClass.class, BaseClass::getId, BaseStudentCadre::getClassId)
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudentCadre::getUserId)
-                .innerJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
                 .innerJoin(Department.class, Department::getId, BaseClass::getOrgId)
                 .leftJoin(BaseMajorSet.class, BaseMajorSet::getId, BaseStudentSchoolRoll::getMajorSetId)
                 .leftJoin(BaseGrade.class, BaseGrade::getId, BaseStudentSchoolRoll::getGradeId);
@@ -122,7 +123,6 @@ public class BaseStudentCadreController {
         return RT.ok(isSuccess);
     }
 
-
     @PutMapping
     @ApiOperation(value = "修改学生干部管理")
     @SaCheckPermission("basestudentcadre:edit")

+ 28 - 8
src/main/java/com/xjrsoft/module/student/controller/StudentManagerController.java

@@ -5,6 +5,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.page.ConventPage;
@@ -20,6 +21,7 @@ import com.xjrsoft.module.student.service.IStudentManagerService;
 import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
 import com.xjrsoft.module.student.vo.BaseStudentUserVo;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.Menu;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -42,9 +44,31 @@ public class StudentManagerController {
     @SaCheckPermission("studentmanager:detail")
     public R page(@Valid BaseStudentUserPageDto dto) {
 
-        MPJLambdaWrapper<BaseStudentUser> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper
-                .disableSubLogicDel()
+//        MPJLambdaWrapper<BaseStudentUser> queryWrapper = new MPJLambdaWrapper<>();
+//        queryWrapper
+//                .disableSubLogicDel()
+//                .like(StrUtil.isNotBlank(dto.getUserName()), BaseStudentUser::getUserName, dto.getUserName())
+//                .like(StrUtil.isNotBlank(dto.getMobile()), BaseStudentUser::getMobile, dto.getMobile())
+//                .like(StrUtil.isNotBlank(dto.getName()), BaseStudentUser::getName, dto.getName())
+//                .like(StrUtil.isNotBlank(dto.getEmail()), BaseStudentUser::getEmail, dto.getEmail())
+//                .orderByDesc(BaseStudentUser::getId)
+//                .select(BaseStudentUser::getId)
+//                .select(BaseStudentUser.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentUserPageVo.class).contains(x.getProperty()))
+//                .select(BaseStudentSchoolRoll::getStudyYear)
+//                .select("a.`name` as grade_id")
+//                .select("b.`name` as major_set_id")
+//                .select("c.`name` as class_id")
+//                .innerJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentUser::getId)
+//                .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudentUser::getId)
+//                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BaseStudentSchoolRoll::getArchivesStatus, ext -> ext.selectAs(DictionaryDetail::getName, BaseStudentUserPageVo::getArchivesStatus))
+//                .leftJoin("base_grade a on a.id = t2.grade_id")
+//                .leftJoin("base_major_set b on b.id = t2.major_set_id")
+//                .leftJoin("base_class c on c.id = t2.class_id")
+//
+//                .selectAsClass(BaseStudent.class, BaseStudentUserPageVo.class);
+
+        IPage<BaseStudentUserPageVo> page =  studentManagerService.selectJoinListPage(ConventPage.getPage(dto),BaseStudentUserPageVo.class,
+                MPJWrappers.<BaseStudentUser>lambdaJoin()
                 .like(StrUtil.isNotBlank(dto.getUserName()), BaseStudentUser::getUserName, dto.getUserName())
                 .like(StrUtil.isNotBlank(dto.getMobile()), BaseStudentUser::getMobile, dto.getMobile())
                 .like(StrUtil.isNotBlank(dto.getName()), BaseStudentUser::getName, dto.getName())
@@ -58,14 +82,10 @@ public class StudentManagerController {
                 .select("c.`name` as class_id")
                 .innerJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentUser::getId)
                 .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudentUser::getId)
-                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BaseStudentSchoolRoll::getArchivesStatus, ext -> ext.selectAs(DictionaryDetail::getName, BaseStudentUserPageVo::getArchivesStatus))
                 .leftJoin("base_grade a on a.id = t2.grade_id")
                 .leftJoin("base_major_set b on b.id = t2.major_set_id")
-                .leftJoin("base_class c on c.id = t2.class_id")
+                .leftJoin("base_class c on c.id = t2.class_id"));
 
-                .selectAsClass(BaseStudent.class, BaseStudentUserPageVo.class);
-
-        IPage<BaseStudentUser> page = studentManagerService.page(ConventPage.getPage(dto), queryWrapper);
         PageOutput<BaseStudentUserPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentUserPageVo.class);
         return R.ok(pageOutput);
     }

+ 3 - 3
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentCadreDto.java

@@ -53,12 +53,12 @@ public class AddBaseStudentCadreDto implements Serializable {
     * 任职开始时间
     */
     @ApiModelProperty("任职开始时间")
-    private Date startTime;
+    private String startTime;
     /**
     * 任职结束时间
     */
     @ApiModelProperty("任职结束时间")
-    private Date endTime;
+    private String endTime;
     /**
     * 状态(1:在职 0:离职)
     */
@@ -68,7 +68,7 @@ public class AddBaseStudentCadreDto implements Serializable {
     * 离职生效日期
     */
     @ApiModelProperty("离职生效日期")
-    private Date leaveTime;
+    private String leaveTime;
     /**
     * 离职原因
     */

+ 43 - 1
src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentCadreDto.java

@@ -8,6 +8,8 @@ import java.time.LocalTime;
 import java.time.LocalDateTime;
 import java.math.BigDecimal;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.util.List;
 import java.util.Date;
 
@@ -20,7 +22,7 @@ import java.util.Date;
 * @Version 1.0
 */
 @Data
-public class UpdateBaseStudentCadreDto extends AddBaseStudentCadreDto {
+public class UpdateBaseStudentCadreDto {
 
     private static final long serialVersionUID = 1L;
 
@@ -29,4 +31,44 @@ public class UpdateBaseStudentCadreDto extends AddBaseStudentCadreDto {
     */
     @ApiModelProperty("主键编号")
     private Long id;
+    /**
+     * 职务id
+     */
+    @ApiModelProperty("职务id")
+    private Long postId;
+    /**
+     * 学生任职机构
+     */
+    @ApiModelProperty("学生任职机构")
+    private Long orgId;
+    /**
+     * 任职开始时间
+     */
+    @ApiModelProperty("任职开始时间")
+    private String startTime;
+    /**
+     * 任职结束时间
+     */
+    @ApiModelProperty("任职结束时间")
+    private String endTime;
+    /**
+     * 状态(1:在职 0:离职)
+     */
+    @ApiModelProperty("状态(1:在职 0:离职)")
+    private Integer status;
+    /**
+     * 离职生效日期
+     */
+    @ApiModelProperty("离职生效日期")
+    private String leaveTime;
+    /**
+     * 离职原因
+     */
+    @ApiModelProperty("离职原因")
+    private String leaveReason;
+    /**
+     * 序号
+     */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentCadrePageVo.java

@@ -9,6 +9,8 @@ import lombok.Data;
 
 import com.xjrsoft.common.annotation.Trans;
 import com.xjrsoft.common.enums.TransType;
+
+import java.sql.Timestamp;
 import java.time.LocalTime;
 import java.time.LocalDateTime;
 import java.math.BigDecimal;
@@ -113,6 +115,7 @@ public class BaseStudentCadrePageVo {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("任职开始时间")
     @ApiModelProperty("任职开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
     /**
     * 任职结束时间
@@ -120,6 +123,7 @@ public class BaseStudentCadrePageVo {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("任职结束时间")
     @ApiModelProperty("任职结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
     /**
     * 状态(1:在职 0:离职)
@@ -134,6 +138,7 @@ public class BaseStudentCadrePageVo {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("离职生效日期")
     @ApiModelProperty("离职生效日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date leaveTime;
     /**
     * 离职原因

+ 97 - 53
src/main/resources/sqlScript/20231113_sql.sql

@@ -119,59 +119,7 @@ ALTER TABLE `tl`.`base_punishment_student_relation`
   ADD COLUMN `adjust_reason` VARCHAR(500) NULL   COMMENT '调整原因' AFTER `adjust_date`;
 
 
--- ----------------------------
--- 学生操行分考核类别
--- ----------------------------
-DROP TABLE IF EXISTS base_student_behavior_category;
-CREATE TABLE base_student_behavior_category
-(
-    id BIGINT NOT NULL COMMENT '主键编号',
-    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
-    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
-    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
-    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
-    `delete_mark` INT NOT NULL COMMENT '删除标记',
-    `enabled_mark` INT NOT NULL COMMENT '有效标志',
-    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
-    `name` VARCHAR(200) NOT NULL COMMENT '名称',
-    `code` VARCHAR(100) NULL DEFAULT NULL COMMENT '编码',
-    `status` INT NULL DEFAULT 1 COMMENT '是否启用(1:是 0:否)',
-    `remark` VARCHAR(1000) COMMENT '备注'
-    PRIMARY KEY (`id`)
-) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生考核类别';
-
--- ----------------------------
--- 学生操行分考核项目
--- ----------------------------
-DROP TABLE IF EXISTS base_student_behavior_project;
-CREATE TABLE base_student_behavior_project
-(
-    id BIGINT NOT NULL COMMENT '主键编号',
-    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
-    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
-    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
-    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
-    `delete_mark` INT NOT NULL COMMENT '删除标记',
-    `enabled_mark` INT NOT NULL COMMENT '有效标志',
-    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
-    `name` VARCHAR(200) NOT NULL COMMENT '名称',
-    `code` VARCHAR(100) NULL DEFAULT NULL COMMENT '编码',
-    `basic_points` double NOT NULL DEFAULT 0 COMMENT '基础分',
-    `points_deducted_min` double NOT NULL DEFAULT 0 COMMENT '扣分范围(最小)',
-    `points_deducted_max` double NOT NULL DEFAULT 0 COMMENT '扣分范围(最大)',
-    `add_points_min` double NOT NULL DEFAULT 0 COMMENT '加分范围(最小)',
-    `add_points_max` double NOT NULL DEFAULT 0 COMMENT '加分范围(最大)',
-    `department_id` bigint NOT NULL COMMENT '所属机构(xjr_department)',
-    `status` INT NULL DEFAULT 1 COMMENT '是否启用(1:是 0:否)',
-    `is_affect` INT NULL DEFAULT 0 COMMENT '是否影响(1:是 0:否)',
-    `processing_method` varchar(20) NULL DEFAULT NULL COMMENT '学生操行分处理方式(xjr_dictionary_item[assessment_processing_method])',
-    `behavior_score` double NOT NULL DEFAULT 0 COMMENT '折算操行分要求',
-    `base_student_behavior_id` bigint NOT NULL DEFAULT 0 COMMENT '操行项目编号',
-    `is_teacher_edit` INT NULL DEFAULT 0 COMMENT '是否允许班主任修改项目(1:是 0:否)',
-    `behavior_score_remark` VARCHAR(1000) NULL DEFAULT NULL COMMENT '手动处理学生操行分说明',
-    `remark` VARCHAR(1000) COMMENT '备注'
-        PRIMARY KEY (`id`)
-) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生操行分考核项目';
+--------------------------------------------------------------------学生考核--------------------------------------------------------------------
 
 -- ----------------------------
 -- 学生考核类别
@@ -332,10 +280,106 @@ CREATE TABLE base_student_assessment_class_relation
     PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生班级巡查考核-关联班级';
 
+--------------------------------------------------------------------学生考核--------------------------------------------------------------------
 
+--------------------------------------------------------------------学生操行--------------------------------------------------------------------
 
+-- ----------------------------
+-- 学生操行基础分设置
+-- ----------------------------
+DROP TABLE IF EXISTS base_student_behavior_base_score;
+CREATE TABLE base_student_behavior_base_score
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `assessment_cycle` varchar(20) NULL DEFAULT NULL COMMENT '考核周期方式(xjr_dictionary_item[assessment_cycle])',
+    `base_score` double NOT NULL DEFAULT 0 COMMENT '基础分',
+    `passing_score` double NOT NULL DEFAULT 0 COMMENT '及格分',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生操行基础分设置';
+
+-- ----------------------------
+-- 学生操行等级设置
+-- ----------------------------
+DROP TABLE IF EXISTS base_student_behavior_base_level;
+CREATE TABLE base_student_behavior_base_level
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `name` VARCHAR(200) NOT NULL COMMENT '名称',
+    `score_min` double NOT NULL DEFAULT 0 COMMENT '分数范围(最小)',
+    `score_max` double NOT NULL DEFAULT 0 COMMENT '分数范围(最大)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生操行等级设置';
+
+-- ----------------------------
+-- 学生操行分考核类别
+-- ----------------------------
+DROP TABLE IF EXISTS base_student_behavior_category;
+CREATE TABLE base_student_behavior_category
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `name` VARCHAR(200) NOT NULL COMMENT '名称',
+    `code` VARCHAR(100) NULL DEFAULT NULL COMMENT '编码',
+    `status` INT NULL DEFAULT 1 COMMENT '是否启用(1:是 0:否)',
+    `remark` VARCHAR(1000) COMMENT '备注'
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生考核类别';
+
+-- ----------------------------
+-- 学生操行分考核项目
+-- ----------------------------
+DROP TABLE IF EXISTS base_student_behavior_project;
+CREATE TABLE base_student_behavior_project
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` DATE NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` DATE NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `base_student_behavior_category_id` BIGINT NULL DEFAULT NULL COMMENT '学生考核类别编号(base_student_behavior_category)',
+    `name` VARCHAR(200) NOT NULL COMMENT '名称',
+    `code` VARCHAR(100) NULL DEFAULT NULL COMMENT '编码',
+    `score_type` varchar(20) NULL DEFAULT NULL COMMENT '考核类型(xjr_dictionary_item[score_type])',
+    `score` double NOT NULL DEFAULT 0 COMMENT '分值',
+    `is_adjustment` INT NULL DEFAULT 0 COMMENT '是否允许调整(1:是 0:否)',
+    `points_deducted_min` double NOT NULL DEFAULT 0 COMMENT '扣分范围(最小)',
+    `points_deducted_max` double NOT NULL DEFAULT 0 COMMENT '扣分范围(最大)',
+    `is_impact_assessment` INT NULL DEFAULT 0 COMMENT '是否影响班级考核(1:是 0:否)',
+    `conversion_method` INT NULL DEFAULT 1 COMMENT '换算方式(1:手动换算 2:自动换算)',
+    `status` INT NULL DEFAULT 1 COMMENT '是否启用(1:是 0:否)',
+    `base_student_assessment_project_id` BIGINT NULL DEFAULT NULL COMMENT '班级考核项目编号(base_student_assessment_project)',
+    `is_edit` INT NULL DEFAULT 0 COMMENT '是否允许修改(1:是 0:否)',
+    `automatic_score_type` varchar(20) NULL DEFAULT NULL COMMENT '自动换算考核类型(xjr_dictionary_item[score_type])',
+    `remark` VARCHAR(1000) COMMENT '备注'
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生操行分考核项目';
 
 
+--------------------------------------------------------------------学生操行--------------------------------------------------------------------