Explorar o código

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

dzx hai 7 meses
pai
achega
bde11775f8

+ 47 - 35
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java

@@ -314,7 +314,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
 
         // 如果申领教材列表为空,应该使用基础数据维护的
         boolean isCourseFlag = false;
-        if(CollectionUtils.isEmpty(mergedDistinctList)){
+        if (CollectionUtils.isEmpty(mergedDistinctList)) {
             isCourseFlag = true;
             mergedDistinctList = courselList;
         }
@@ -355,7 +355,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
 
                     categoryTotalPrice = BigDecimal.ZERO;
                     for (HeadTeaLookClassBookCategoryDetailVo vo : value) {
-                        if(!isCourseFlag){
+                        if (!isCourseFlag) {
                             textbookStudentClaim = byTextbookId.get(vo.getTextbookId());
                             if (ObjectUtils.isNotEmpty(textbookStudentClaim)) {
                                 vo.setTextbookStudentClaimId(textbookStudentClaim.getId());
@@ -443,7 +443,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
                 .eq(WfTextbookClaim::getClassId, baseStudentSchoolRoll.getClassId())
                 .eq(WfTextbookClaim::getClaimType, ClaimTypeEnum.ClaimClass.getCode())
-               ;
+        ;
         List<StudentSemesterTextbookVo> classList = wfTextbookClaimMapper.selectJoinList(StudentSemesterTextbookVo.class, classMPJLambdaWrapper);
         // 根据学期 ID 分组,再根据教材 ID 映射
         Map<Long, Map<Long, StudentSemesterTextbookVo>> classMap = classList.stream()
@@ -497,7 +497,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         TextbookStudentSemesterVo result;
         List<Long> mergedKeyList;
         int status = 2;
-        for(StudentSemesterTextbookVo vo : mergedDistinctList){
+        for (StudentSemesterTextbookVo vo : mergedDistinctList) {
             result = new TextbookStudentSemesterVo();
             Long semester = vo.getBaseSemesterId();
             result.setBaseSemesterId(semester);
@@ -516,8 +516,8 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     .distinct() // 去重
                     .collect(Collectors.toList()); // 转换为 List
 
-            for(Long textbookId : mergedKeyList){
-                if(ObjectUtils.isEmpty(studentClaimSemesterMap) || ObjectUtils.isEmpty(studentClaimSemesterMap.get(textbookId))){
+            for (Long textbookId : mergedKeyList) {
+                if (ObjectUtils.isEmpty(studentClaimSemesterMap) || ObjectUtils.isEmpty(studentClaimSemesterMap.get(textbookId))) {
                     status = 1;
                     break;
                 }
@@ -830,8 +830,12 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
-                .innerJoin(TextbookIssueRecord.class, TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
-                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, WfTextbookClaimItem::getWfTextbookClaimId)
+                .innerJoin(TextbookIssueRecord.class,
+                        wrapper -> wrapper
+                                .eq(TextbookIssueRecord::getDataId, WfTextbookClaim::getId)
+                                .eq(TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
+                )
+                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .eq(WfTextbookClaim::getBaseSemesterId, dto.getBaseSemesterId())
                 .eq(WfTextbookClaim::getClassId, dto.getClassId())
         ;
@@ -850,7 +854,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         for (Long textbookId : dto.getTextbookIds()) {
             for (Long userId : dto.getUserIds()) {
                 BigDecimal price = BigDecimal.ZERO;
-                if(MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(textbookId))){
+                if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(textbookId))) {
                     price = textBookPriceMap.get(textbookId);
                 }
                 oldTextbookStudentClaim = byUserIdAndTextbookId.get("" + userId + textbookId);
@@ -862,10 +866,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -879,10 +883,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);
@@ -943,7 +947,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .collect(Collectors.toMap(t -> "" + t.getBaseSemesterId() + t.getClassId() + t.getStudentUserId() + t.getTextbookId(), t -> t, (t1, t2) -> t1));
 
         Map<Long, TextbookStudentClaim> byClaimSource = textbookStudentClaimList.stream()
-                .collect(Collectors.toMap(TextbookStudentClaim::getId , t -> t, (t1, t2) -> t1));
+                .collect(Collectors.toMap(TextbookStudentClaim::getId, t -> t, (t1, t2) -> t1));
 
         // 根据学期,班级获取申领教材信息
         MPJLambdaWrapper<WfTextbookClaim> wfTextbookClaimLambdaQueryWrapper = new MPJLambdaWrapper<>();
@@ -951,8 +955,12 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
-                .innerJoin(TextbookIssueRecord.class, TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
-                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, WfTextbookClaimItem::getWfTextbookClaimId)
+                .innerJoin(TextbookIssueRecord.class,
+                        wrapper -> wrapper
+                                .eq(TextbookIssueRecord::getDataId, WfTextbookClaim::getId)
+                                .eq(TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
+                )
+                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .in(WfTextbookClaim::getBaseSemesterId, baseSemesterIds)
                 .in(WfTextbookClaim::getClassId, classIds)
         ;
@@ -971,13 +979,13 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         Long loginUserId = StpUtil.getLoginIdAsLong();
         for (TeacherConfirmDto dto : dtos) {
             BigDecimal price = BigDecimal.ZERO;
-            if(MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(dto.getTextbookId()))){
+            if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(dto.getTextbookId()))) {
                 price = textBookPriceMap.get(dto.getTextbookId());
             }
             if (ObjectUtils.isNotEmpty(dto.getTextbookStudentClaimId())
                     && dto.getTextbookStudentClaimId() != 0) {
                 oldTextbookStudentClaim = byClaimSource.get(dto.getTextbookStudentClaimId());
-                if(ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
+                if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
                         && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
                     updateTextbookStudentClaim = new TextbookStudentClaim();
                     updateTextbookStudentClaim.setId(dto.getTextbookStudentClaimId());
@@ -1003,10 +1011,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1020,10 +1028,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);
@@ -1085,7 +1093,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .collect(Collectors.toMap(t -> "" + t.getStudentUserId() + t.getTextbookId(), t -> t, (t1, t2) -> t1));
 
         Map<Long, TextbookStudentClaim> byClaimSource = textbookStudentClaimList.stream()
-                .collect(Collectors.toMap(TextbookStudentClaim::getId , t -> t, (t1, t2) -> t1));
+                .collect(Collectors.toMap(TextbookStudentClaim::getId, t -> t, (t1, t2) -> t1));
 
         // 根据学期,班级获取申领教材信息
         MPJLambdaWrapper<WfTextbookClaim> wfTextbookClaimLambdaQueryWrapper = new MPJLambdaWrapper<>();
@@ -1093,8 +1101,12 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
-                .innerJoin(TextbookIssueRecord.class, TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
-                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, WfTextbookClaimItem::getWfTextbookClaimId)
+                .innerJoin(TextbookIssueRecord.class,
+                        wrapper -> wrapper
+                                .eq(TextbookIssueRecord::getDataId, WfTextbookClaim::getId)
+                                .eq(TextbookIssueRecord::getDataItemId, WfTextbookClaimItem::getId)
+                )
+                .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .eq(WfTextbookClaim::getBaseSemesterId, dto.getBaseSemesterId())
                 .eq(WfTextbookClaim::getClassId, baseStudentSchoolRoll.getClassId())
         ;
@@ -1112,24 +1124,24 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         Long loginUserId = StpUtil.getLoginIdAsLong();
         for (StudentConfirmDetailDto studentConfirmDetailDto : dto.getStudentConfirmDetail()) {
             BigDecimal price = BigDecimal.ZERO;
-            if(MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(studentConfirmDetailDto.getTextbookId()))){
+            if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(studentConfirmDetailDto.getTextbookId()))) {
                 price = textBookPriceMap.get(studentConfirmDetailDto.getTextbookId());
             }
             if (ObjectUtils.isNotEmpty(studentConfirmDetailDto.getTextbookStudentClaimId())
                     && studentConfirmDetailDto.getTextbookStudentClaimId() != 0
             ) {
                 oldTextbookStudentClaim = byClaimSource.get(studentConfirmDetailDto.getTextbookStudentClaimId());
-                if(ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
-                         && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)){
+                if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
+                        && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
                     updateTextbookStudentClaim = new TextbookStudentClaim();
                     updateTextbookStudentClaim.setId(studentConfirmDetailDto.getTextbookStudentClaimId());
                     updateTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     updateTextbookStudentClaim.setModifyDate(nowDate);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1137,16 +1149,16 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 }
             } else {
                 oldTextbookStudentClaim = byUserIdAndTextbookId.get("" + baseStudentSchoolRoll.getUserId() + studentConfirmDetailDto.getTextbookId());
-                if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)  && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
+                if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim) && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
                     updateTextbookStudentClaim = new TextbookStudentClaim();
                     updateTextbookStudentClaim.setId(oldTextbookStudentClaim.getId());
                     updateTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1160,10 +1172,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
-                    if(dto.getIsClaim() == 0){
+                    if (dto.getIsClaim() == 0) {
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
-                    if(dto.getIsClaim() == 1){
+                    if (dto.getIsClaim() == 1) {
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);

+ 234 - 6
src/main/resources/sqlScript/20250414_sql.sql

@@ -1,5 +1,5 @@
 alter table wf_meeting_apply
-    modify meeting_room_id varchar (32) null comment '会议室管理主键id(meeting_room)';
+    modify meeting_room_id varchar(32) null comment '会议室管理主键id(meeting_room)';
 
 -- ---------------------------------------------------------------
 -- 教职工职称信息
@@ -9,10 +9,10 @@ create table `professional_title`
 (
     id                            bigint       not null comment '主键编号'
         primary key,
-    create_user_id                bigint null comment '创建人',
-    create_date                   datetime null comment '创建时间',
-    modify_user_id                bigint null comment '修改人',
-    modify_date                   datetime null comment '修改时间',
+    create_user_id                bigint       null comment '创建人',
+    create_date                   datetime     null comment '创建时间',
+    modify_user_id                bigint       null comment '修改人',
+    modify_date                   datetime     null comment '修改时间',
     delete_mark                   int          not null comment '删除标记',
     enabled_mark                  int          not null comment '有效标志',
 
@@ -29,7 +29,7 @@ create table `professional_title`
     `qualification_end_date`      date         default null comment '任职资格结束时间',
     `notice_date`                 date         default null comment '发文时间',
     `professional_title_category` varchar(256) default null comment '职称类别',
-    `job_status`                 char(1)          default null comment '是否现任(0:否;1:是)',
+    `job_status`                  char(1)      default null comment '是否现任(0:否;1:是)',
     `accord_file_id`              bigint       default null comment '依据附件id'
 ) engine = innodb
   default charset = utf8mb4 comment = '教职工职称信息';
@@ -72,3 +72,231 @@ ALTER TABLE official_document_received
 
 ALTER TABLE official_document_received
   ADD COLUMN handle_duty_user_id BIGINT DEFAULT 0 NULL COMMENT '落实负责人';
+
+-- ---------------------------------------------------------------
+-- 教师资格证信息
+-- ---------------------------------------------------------------
+drop table if exists `teacher_certification`;
+create table `teacher_certification`
+(
+    id                     bigint       not null comment '主键编号'
+        primary key,
+    create_user_id         bigint       null comment '创建人',
+    create_date            datetime     null comment '创建时间',
+    modify_user_id         bigint       null comment '修改人',
+    modify_date            datetime     null comment '修改时间',
+    delete_mark            int          not null comment '删除标记',
+    enabled_mark           int          not null comment '有效标志',
+
+    `user_id`              bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`            varchar(32)  default null comment '工号',
+    `dept_id`              varchar(512) default null comment '部门主键id(xjr_dept)',
+    `name`                 varchar(256) not null comment '证书名称',
+    `certification_no`     varchar(256) not null comment '证书编号',
+    `subject_category`     varchar(256) default null comment '任教学科',
+    `category`             varchar(256) default null comment '资格种类',
+    `certifying_authority` varchar(256) default null comment '发证机构',
+    `issuance_date`        date         default null comment '发证时间',
+    `accord_file_id`       bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '教师资格证信息';
+
+-- ---------------------------------------------------------------
+-- 考评员信息
+-- ---------------------------------------------------------------
+drop table if exists `evaluator_information`;
+create table `evaluator_information`
+(
+    id                     bigint       not null comment '主键编号'
+        primary key,
+    create_user_id         bigint       null comment '创建人',
+    create_date            datetime     null comment '创建时间',
+    modify_user_id         bigint       null comment '修改人',
+    modify_date            datetime     null comment '修改时间',
+    delete_mark            int          not null comment '删除标记',
+    enabled_mark           int          not null comment '有效标志',
+
+    `user_id`              bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`            varchar(32)  default null comment '工号',
+    `dept_id`              varchar(512) default null comment '部门主键id(xjr_dept)',
+    `name`                 varchar(256) not null comment '证书名称',
+    `certification_no`     varchar(256) not null comment '证书编号',
+    `subject_category`     varchar(256) default null comment '任教学科',
+    `level`                varchar(256) default null comment '级别',
+    `certifying_authority` varchar(256) default null comment '发证机构',
+    `issuance_date`        date         default null comment '发证时间',
+    `validity`             date         default null comment '有效期',
+    `accord_file_id`       bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '考评员信息';
+
+-- ---------------------------------------------------------------
+-- 语言能力信息
+-- ---------------------------------------------------------------
+drop table if exists `language_competence`;
+create table `language_competence`
+(
+    id                 bigint       not null comment '主键编号'
+        primary key,
+    create_user_id     bigint       null comment '创建人',
+    create_date        datetime     null comment '创建时间',
+    modify_user_id     bigint       null comment '修改人',
+    modify_date        datetime     null comment '修改时间',
+    delete_mark        int          not null comment '删除标记',
+    enabled_mark       int          not null comment '有效标志',
+
+    `user_id`          bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`        varchar(32)  default null comment '工号',
+    `dept_id`          varchar(512) default null comment '部门主键id(xjr_dept)',
+    `name`             varchar(256) not null comment '语言种类',
+    `level`            varchar(256) not null comment '等级',
+    `certification_no` varchar(256) not null comment '证书编号',
+    `exam_authority`   varchar(256) default null comment '测试机构',
+    `issuance_unit`    varchar(256) default null comment '发证单位',
+    `issuance_date`    date         default null comment '发证时间',
+    `accord_file_id`   bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '语言能力信息';
+
+-- ---------------------------------------------------------------
+-- 教职工合同记录
+-- ---------------------------------------------------------------
+drop table if exists `faculty_contract`;
+create table `faculty_contract`
+(
+    id                  bigint   not null comment '主键编号'
+        primary key,
+    create_user_id      bigint   null comment '创建人',
+    create_date         datetime null comment '创建时间',
+    modify_user_id      bigint   null comment '修改人',
+    modify_date         datetime null comment '修改时间',
+    delete_mark         int      not null comment '删除标记',
+    enabled_mark        int      not null comment '有效标志',
+
+    `user_id`           bigint   not null comment '教职工主键id(xjr_user)',
+    `user_name`         varchar(32)  default null comment '工号',
+    `dept_id`           varchar(512) default null comment '部门主键id(xjr_dept)',
+    `start_date`        date     not null comment '起始日期',
+    `end_date`          date     not null comment '结束日期',
+    `contract_position` varchar(256) default null comment '合同岗位',
+    `accord_file_id`    bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '教职工合同记录';
+
+-- ---------------------------------------------------------------
+-- 校外其他协会记录
+-- ---------------------------------------------------------------
+drop table if exists `outside_associations`;
+create table `outside_associations`
+(
+    id               bigint       not null comment '主键编号'
+        primary key,
+    create_user_id   bigint       null comment '创建人',
+    create_date      datetime     null comment '创建时间',
+    modify_user_id   bigint       null comment '修改人',
+    modify_date      datetime     null comment '修改时间',
+    delete_mark      int          not null comment '删除标记',
+    enabled_mark     int          not null comment '有效标志',
+
+    `user_id`        bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`      varchar(32)  default null comment '工号',
+    `dept_id`        varchar(512) default null comment '部门主键id(xjr_dept)',
+    `name`           varchar(256) not null comment '协会名称',
+    `join_date`      date         not null comment '加入时间',
+    `exit_date`      date         default null comment '退出时间',
+    `duty`           varchar(256) default null comment '职务',
+    `remark`         varchar(512) default null comment '说明',
+    `accord_file_id` bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '校外其他协会记录';
+
+-- ---------------------------------------------------------------
+-- 骨干教师记录
+-- ---------------------------------------------------------------
+drop table if exists `core_teacher`;
+create table `core_teacher`
+(
+    id                 bigint       not null comment '主键编号'
+        primary key,
+    create_user_id     bigint       null comment '创建人',
+    create_date        datetime     null comment '创建时间',
+    modify_user_id     bigint       null comment '修改人',
+    modify_date        datetime     null comment '修改时间',
+    delete_mark        int          not null comment '删除标记',
+    enabled_mark       int          not null comment '有效标志',
+
+    `user_id`          bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`        varchar(32)  default null comment '工号',
+    `dept_id`          varchar(512) default null comment '部门主键id(xjr_dept)',
+    `level`            varchar(256) not null comment '级别',
+    `subject_category` varchar(256) not null comment '任教学科',
+    `certification_no` varchar(256) not null comment '证书编号',
+    `specialty_dept`   varchar(256) default null comment '专业部',
+    `reference_number` varchar(256) default null comment '文号',
+    `issuance_date`    date         default null comment '认证时间',
+    `remark`           varchar(512) default null comment '备注',
+    `accord_file_id`   bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '骨干教师记录';
+
+-- ---------------------------------------------------------------
+-- 科研信息记录
+-- ---------------------------------------------------------------
+drop table if exists `scientific_research`;
+create table `scientific_research`
+(
+    id                     bigint       not null comment '主键编号'
+        primary key,
+    create_user_id         bigint       null comment '创建人',
+    create_date            datetime     null comment '创建时间',
+    modify_user_id         bigint       null comment '修改人',
+    modify_date            datetime     null comment '修改时间',
+    delete_mark            int          not null comment '删除标记',
+    enabled_mark           int          not null comment '有效标志',
+
+    `user_id`              bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`            varchar(32)  default null comment '工号',
+    `dept_id`              varchar(512) default null comment '部门主键id(xjr_dept)',
+    `name`                 varchar(256) not null comment '科研名称',
+    `scientific_no`        varchar(256) default null comment '科研编号',
+    `subject_category`     varchar(256) default null comment '任教学科',
+    `level`                varchar(256) default null comment '等级',
+    `certifying_authority` varchar(256) default null comment '发证机构',
+    `issuance_date`        date         default null comment '发证时间',
+    `remark`               varchar(512) default null comment '备注',
+    `accord_file_id`       bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '科研信息记录';
+
+-- ---------------------------------------------------------------
+-- 岗位信息记录
+-- ---------------------------------------------------------------
+drop table if exists `job_information`;
+create table `job_information`
+(
+    id                   bigint       not null comment '主键编号'
+        primary key,
+    create_user_id       bigint       null comment '创建人',
+    create_date          datetime     null comment '创建时间',
+    modify_user_id       bigint       null comment '修改人',
+    modify_date          datetime     null comment '修改时间',
+    delete_mark          int          not null comment '删除标记',
+    enabled_mark         int          not null comment '有效标志',
+
+    `user_id`            bigint       not null comment '教职工主键id(xjr_user)',
+    `user_name`          varchar(32)  default null comment '工号',
+    `dept_id`            varchar(512) default null comment '部门主键id(xjr_dept)',
+    `job_category`       varchar(256) not null comment '岗位类型',
+    `job_name`           varchar(256) not null comment '岗位名称',
+    `employ_date`        date         default null comment '聘用时间',
+    `employ_no`          varchar(256) default null comment '聘用文号',
+    `leader_status`      char(1)          default null comment '是否领导岗位',
+    `job_dept`           varchar(256) default null comment '行政岗位部门',
+    `concurrent_college` varchar(256) default null comment '兼课学院',
+    `remark`             varchar(512) default null comment '备注',
+    `accord_file_id`     bigint       default null comment '依据附件id'
+) engine = innodb
+  default charset = utf8mb4 comment = '岗位信息记录';
+
+
+