Quellcode durchsuchen

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

大数据与最优化研究所 vor 7 Monaten
Ursprung
Commit
6ead30d197

+ 45 - 0
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -2,15 +2,23 @@ package com.xjrsoft.module.attendance.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import com.xjrsoft.common.annotation.XjrLog;
+import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.OutInStatusEnum;
 import com.xjrsoft.common.enums.StudyStatusEnum;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
 import com.xjrsoft.module.attendance.dto.TeacherDetailsDto;
+import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
+import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
 import com.xjrsoft.module.attendance.service.ITeacherAttendanceRecordService;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsPageVo;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsVo;
@@ -24,8 +32,11 @@ import com.xjrsoft.module.personnel.service.IReservationSchoolService;
 import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.service.IStudentLeaveService;
+import com.xjrsoft.module.teacher.dto.BaseTeacherPageDto;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
+import com.xjrsoft.module.teacher.vo.XjrUserPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -39,6 +50,8 @@ import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -61,6 +74,8 @@ public class StatisticsController {
     private final IStudentLeaveService studentLeaveService;
     private final IReservationSchoolService reservationSchoolService;
     private final ITeacherAttendanceRecordService attendanceRecordService;
+    private final ITeacherbaseManagerService teacherbaseManagerService;
+    private final IAttendanceRuleCategoryService ruleCategoryService;
 
     @GetMapping(value = "/teacher-statistics")
     @ApiOperation(value = "教职工考勤统计")
@@ -88,7 +103,9 @@ public class StatisticsController {
         Long leaveCount = 0L;
         Long absenteeismCount = 0L;
         Integer dividendCount = 0;
+        Set<Long> teacherIds = new HashSet<>();
         for (TeacherStatisticsPageVo recordVo : list) {
+            teacherIds.add(recordVo.getUserId());
             if ("迟到".equals(recordVo.getStatus())) {
                 lateCount++;
                 dividendCount++;
@@ -109,6 +126,34 @@ public class StatisticsController {
         statisticsVo.setLeaveCount(leaveCount);
         statisticsVo.setAbsenteeismCount(absenteeismCount);
 
+        //查询不需要考勤的人
+        AttendanceRuleCategory ruleCategory = ruleCategoryService.getOne(
+                new QueryWrapper<AttendanceRuleCategory>().lambda()
+                        .eq(AttendanceRuleCategory::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .eq(AttendanceRuleCategory::getRoleId, 2)
+                        .le(AttendanceRuleCategory::getStartDate, LocalDate.now())
+                        .ge(AttendanceRuleCategory::getStartDate, LocalDate.now())
+        );
+        if(ruleCategory != null && ruleCategory.getUserRelation() != null){
+            BaseTeacherPageDto teacherPageDto = new BaseTeacherPageDto();
+            JsonArray userRelation = new JsonParser().parse(ruleCategory.getUserRelation()).getAsJsonArray();
+            List<Long> userIds = new ArrayList<>();
+            List<Long> deptIds = new ArrayList<>();
+            for (JsonElement jsonElement : userRelation) {
+                JsonObject jsonObject = jsonElement.getAsJsonObject();
+                deptIds.add(jsonObject.get("deptId").getAsLong());
+                userIds.add(jsonObject.get("userId").getAsLong());
+            }
+            teacherPageDto.setDeptIds(deptIds);
+            teacherPageDto.setUserIds(userIds);
+            List<XjrUserPageVo> attendanceTeacherList = teacherbaseManagerService.getList(teacherPageDto);
+
+            List<XjrUserPageVo> allTeacherList = teacherbaseManagerService.getList(new BaseTeacherPageDto());
+
+            statisticsVo.setNotAttendanceCount(allTeacherList.size() - attendanceTeacherList.size());
+        }
+
+
         //计算出勤率
         BigDecimal divide = BigDecimal.ZERO;
         if (dividendCount != 0) {

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/entity/AttendanceStatistics.java

@@ -132,4 +132,7 @@ public class AttendanceStatistics implements Serializable {
     @EntityMapping(thisField = "id", joinField = "attendanceStatisticsId")
     private List<AttendanceStatisticsRecord> attendanceStatisticsRecordList;
 
+    @ApiModelProperty("备注")
+    private String remarks;
+
 }

+ 51 - 41
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceStatisticsServiceImpl.java

@@ -17,7 +17,11 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.attendance.dto.AddAttendanceStatisticsDto;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticsPageDto;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticsRecordDto;
-import com.xjrsoft.module.attendance.entity.*;
+import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
+import com.xjrsoft.module.attendance.entity.AttendanceStatistics;
+import com.xjrsoft.module.attendance.entity.AttendanceStatisticsRecord;
+import com.xjrsoft.module.attendance.entity.AttendanceUserRelation;
+import com.xjrsoft.module.attendance.entity.TeacherAttendanceRecord;
 import com.xjrsoft.module.attendance.mapper.AttendanceStatisticsMapper;
 import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
 import com.xjrsoft.module.attendance.service.IAttendanceStatisticsRecordService;
@@ -40,7 +44,15 @@ import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
 import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
 import lombok.AllArgsConstructor;
 import me.zhyd.oauth.log.Log;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
@@ -53,7 +65,13 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -89,24 +107,15 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(AddAttendanceStatisticsDto dto) {
-        try {
-            AttendanceStatistics statistics = BeanUtil.toBean(dto, AttendanceStatistics.class);
-            statistics.setCreateDate(new Date());
-            statistics.setStatus(0);
-            statisticsMapper.insert(statistics);
-
-            //1、同步出入记录的数据
-            //2、固化考勤数据
-            refreshRecord(statistics.getId());
-            return true;
-        } catch (Exception e) {
-            Log.error(e.getMessage(), e);
-            if(e.getClass().equals(MyException.class)){
-                throw new MyException(e.getMessage());
-            }else{
-                throw new MyException("添加报错,请联系管理员");
-            }
-        }
+        AttendanceStatistics statistics = BeanUtil.toBean(dto, AttendanceStatistics.class);
+        statistics.setCreateDate(new Date());
+        statistics.setStatus(0);
+        statisticsMapper.insert(statistics);
+
+        //1、同步出入记录的数据
+        //2、固化考勤数据
+        refreshRecord(statistics.getId());
+        return true;
     }
 
     @Override
@@ -173,6 +182,9 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean refreshRecord(Long id) {
+        String remarks = null;
+        int personCount = 0;
+        int attendanceDays = 0;
         try {
             //1、修改状态为统计中
             AttendanceStatistics statistics = this.getById(id);
@@ -194,14 +206,10 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
 
                 Map<Long, AttendanceRuleDetailsUserVo> teacherRules = ruleCategoryService.getAllTeacherTodyRule(now.getDayOfWeek().name());
 
-                try {
-                    //教师
-                    outInRecordUtil.getTeacherRecords(faceImportMapper, startDateTime, endDateTime, teacherRules);
-                    //拉取车辆数据
-                    outInRecordUtil.GetVehicleRecord(faceImportMapper, startDateTime, endDateTime);
-                } catch (ParseException e) {
-                    Log.error(e.getMessage(), e);
-                }
+                //教师
+                outInRecordUtil.getTeacherRecords(faceImportMapper, startDateTime, endDateTime, teacherRules);
+                //拉取车辆数据
+                outInRecordUtil.GetVehicleRecord(faceImportMapper, startDateTime, endDateTime);
 
                 AttendanceRecordTask recordTask = new AttendanceRecordTask();
                 recordTask.teacherAttendanceRecord(startDateTime, statistics.getTimePeriod(),
@@ -215,7 +223,6 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
                 );
             }
 
-
             //2、删除以前的数据
             statisticsRecordService.remove(
                     new QueryWrapper<AttendanceStatisticsRecord>().lambda()
@@ -263,6 +270,7 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
 
             //3.4、计算出所有的天数
             List<LocalDate> dateList = getDatesBetween(statistics.getStartDate(), statistics.getEndDate(), ruleMap, weekEnMap);
+            attendanceDays = dateList.size();
 
             //3.5、循环计算,并存入insertList,方便后续批量入库
             List<AttendanceStatisticsRecord> insertList = new ArrayList<>();
@@ -274,9 +282,6 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
             for (User user : userList) {
                 AttendanceStatisticsRecord record = new AttendanceStatisticsRecord();
                 record.setUserId(user.getId());
-                if (14954799879750L == user.getId()) {
-                    System.out.println(user.getName());
-                }
                 record.setAttendanceStatisticsId(statistics.getId());
                 Long normalCount = 0L;
                 Long leaveCount = 0L;
@@ -336,24 +341,29 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
             //3.6、插入数据
             if (!insertList.isEmpty()) {
                 statisticsRecordService.saveBatch(insertList);
+                personCount = insertList.size();
             }
 
-            //4、将状态改为统计完成
-            statistics = this.getById(id);
-            statistics.setStatus(1);
-            statistics.setModifyDate(new Date());
-            statistics.setPersonCount(insertList.size());
-            statistics.setAttendanceDays(dateList.size());
-            this.updateById(statistics);
-
             return true;
         } catch (Exception e) {
             Log.error(e.getMessage(), e);
             if (e.getClass().equals(MyException.class)) {
                 throw new MyException(e.getMessage());
+            }else if(e.getClass().equals(ParseException.class) || e.getClass().equals(ClassCastException.class)){
+                remarks = "未能拉取海康数据,统计可能不准确";
             } else {
                 throw new MyException("刷新出错,请联系管理员");
             }
+        }finally {
+            //4、将状态改为统计完成
+            AttendanceStatistics statistics = this.getById(id);
+            statistics.setStatus(1);
+            statistics.setModifyDate(new Date());
+            statistics.setPersonCount(personCount);
+            statistics.setAttendanceDays(attendanceDays);
+            statistics.setRemarks(remarks);
+            this.updateById(statistics);
+            return true;
         }
     }
 

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/vo/AttendanceStatisticsPageVo.java

@@ -76,4 +76,7 @@ public class AttendanceStatisticsPageVo {
     @ApiModelProperty("应出勤天数")
     private Integer attendanceDays;
 
+    @ApiModelProperty("备注")
+    private String remarks;
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/vo/TeacherStatisticsVo.java

@@ -40,4 +40,7 @@ public class TeacherStatisticsVo {
 
     @ApiModelProperty("旷课人数")
     private Integer playTruantCount;
+
+    @ApiModelProperty("不考勤人数")
+    private Integer notAttendanceCount;
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseNewStudentListExcelVo.java

@@ -117,5 +117,13 @@ public class BaseNewStudentListExcelVo {
     @ApiModelProperty("户籍所属区")
     private String myarea;
 
+    @ExcelProperty("家庭电话")
+    @ApiModelProperty("家庭电话")
+    private String familyMobile;
+
+    @ExcelProperty("家庭地址")
+    @ApiModelProperty("家庭地址")
+    private String familyAddress;
+
 
 }

+ 27 - 0
src/main/java/com/xjrsoft/module/teacher/dto/BaseTeacherPageDto.java

@@ -0,0 +1,27 @@
+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.LocalDate;
+import java.util.List;
+
+
+/**
+ * @title: 教师奖项分页查询入参
+ * @Author dzx
+ * @Date: 2024-06-04
+ * @Version 1.0
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseTeacherPageDto extends PageInput {
+
+    private List<Long> userIds;
+
+    private List<Long> deptIds;
+
+}

+ 6 - 0
src/main/java/com/xjrsoft/module/teacher/mapper/BaseTeacherMapper.java

@@ -1,8 +1,13 @@
 package com.xjrsoft.module.teacher.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.teacher.dto.BaseTeacherPageDto;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
+import com.xjrsoft.module.teacher.vo.XjrUserPageVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @title: mapper
@@ -13,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface BaseTeacherMapper extends MPJBaseMapper<BaseTeacher> {
 
+    List<XjrUserPageVo> getList(@Param("dto") BaseTeacherPageDto dto);
 }

+ 6 - 1
src/main/java/com/xjrsoft/module/teacher/service/ITeacherbaseManagerService.java

@@ -2,9 +2,12 @@ package com.xjrsoft.module.teacher.service;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
+import com.xjrsoft.module.teacher.dto.BaseTeacherPageDto;
 import com.xjrsoft.module.teacher.dto.UpdateXjrUserDto;
 import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.teacher.vo.XjrUserPageVo;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -40,7 +43,7 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
      */
     Boolean delete(List<Long> ids);
 
-    Boolean importData(List<Map<Integer, Object>> excelDataList);
+    Boolean importData(List<Map<Integer, Object>> excelDataList) throws ParseException;
 
     void changeIsNormal(String jobState, Integer isNormal);
 
@@ -48,4 +51,6 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
 
     void disabledUser(Long userId);
 
+    List<XjrUserPageVo> getList(BaseTeacherPageDto dto);
+
 }

+ 113 - 63
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -43,6 +44,7 @@ import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.system.entity.DictionaryItem;
 import com.xjrsoft.module.system.service.IDictionarydetailService;
 import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
+import com.xjrsoft.module.teacher.dto.BaseTeacherPageDto;
 import com.xjrsoft.module.teacher.dto.UpdateXjrUserDto;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.BaseTeacherChangeRecord;
@@ -65,6 +67,7 @@ import com.xjrsoft.module.teacher.mapper.BaseTeacherRegularMapper;
 import com.xjrsoft.module.teacher.mapper.WfTeacherDepartMapper;
 import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
 import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
+import com.xjrsoft.module.teacher.vo.XjrUserPageVo;
 import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
 import com.xjrsoft.module.workflow.mapper.WorkflowFormRelationMapper;
 import lombok.AllArgsConstructor;
@@ -75,6 +78,8 @@ import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -95,13 +100,13 @@ import java.util.stream.Collectors;
 public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMapper, XjrUser> implements ITeacherbaseManagerService {
     private final XjrUserMapper teacherbaseManagerXjrUserMapper;
 
-    private final BaseTeacherMapper teacherbaseManagerBaseTeacherMapper;
-    private final BaseTeacherContactMapper teacherbaseManagerBaseTeacherContactMapper;
-    private final BaseTeacherEducationMapper teacherbaseManagerBaseTeacherEducationMapper;
-    private final BaseTeacherEmployMapper teacherbaseManagerBaseTeacherEmployMapper;
-    private final BaseTeacherFamilyMapper teacherbaseManagerBaseTeacherFamilyMapper;
-    private final BaseTeacherFamilyMemberMapper teacherbaseManagerBaseTeacherFamilyMemberMapper;
-    private final BaseTeacherRegularMapper teacherbaseManagerBaseTeacherRegularMapper;
+    private final BaseTeacherMapper teacherMapper;
+    private final BaseTeacherContactMapper teacherContactMapper;
+    private final BaseTeacherEducationMapper teacherEducationMapper;
+    private final BaseTeacherEmployMapper teacherEmployMapper;
+    private final BaseTeacherFamilyMapper baseTeacherFamilyMapper;
+    private final BaseTeacherFamilyMemberMapper familyMemberMapper;
+    private final BaseTeacherRegularMapper teacherRegularMapper;
 
     private final UserRoleRelationMapper userRoleRelationMapper;
     private final IUserDeptRelationService userDeptRelationService;
@@ -113,7 +118,6 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
     private final IDictionarydetailService dictionaryService;
     private final IDepartmentService departmentService;
     private final IPostService postService;
-    private final BaseTeacherMapper baseTeacherMapper;
     private IDictionarydetailService dictionarydetailService;
 
     private WfTeacherDepartMapper wfTeacherDepartMapper;
@@ -157,31 +161,31 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
                 }
             }
 
-            teacherbaseManagerBaseTeacherMapper.insert(baseTeacher);
+            teacherMapper.insert(baseTeacher);
         }
         for (BaseTeacherContact baseTeacherContact : xjrUser.getBaseTeacherContactList()) {
             baseTeacherContact.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherContactMapper.insert(baseTeacherContact);
+            teacherContactMapper.insert(baseTeacherContact);
         }
         for (BaseTeacherEducation baseTeacherEducation : xjrUser.getBaseTeacherEducationList()) {
             baseTeacherEducation.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherEducationMapper.insert(baseTeacherEducation);
+            teacherEducationMapper.insert(baseTeacherEducation);
         }
         for (BaseTeacherEmploy baseTeacherEmploy : xjrUser.getBaseTeacherEmployList()) {
             baseTeacherEmploy.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherEmployMapper.insert(baseTeacherEmploy);
+            teacherEmployMapper.insert(baseTeacherEmploy);
         }
         for (BaseTeacherFamily baseTeacherFamily : xjrUser.getBaseTeacherFamilyList()) {
             baseTeacherFamily.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherFamilyMapper.insert(baseTeacherFamily);
+            baseTeacherFamilyMapper.insert(baseTeacherFamily);
         }
         for (BaseTeacherFamilyMember baseTeacherFamilyMember : xjrUser.getBaseTeacherFamilyMemberList()) {
             baseTeacherFamilyMember.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherFamilyMemberMapper.insert(baseTeacherFamilyMember);
+            familyMemberMapper.insert(baseTeacherFamilyMember);
         }
         for (BaseTeacherRegular baseTeacherRegular : xjrUser.getBaseTeacherRegularList()) {
             baseTeacherRegular.setUserId(xjrUser.getId());
-            teacherbaseManagerBaseTeacherRegularMapper.insert(baseTeacherRegular);
+            teacherRegularMapper.insert(baseTeacherRegular);
         }
 
         List<UserDeptRelation> userDeptRelationList = new ArrayList<>();
@@ -345,7 +349,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacher  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacher> baseTeacherList = teacherbaseManagerBaseTeacherMapper.selectList(Wrappers.lambdaQuery(BaseTeacher.class).eq(BaseTeacher::getUserId, xjrUser.getId()).select(BaseTeacher::getId));
+            List<BaseTeacher> baseTeacherList = teacherMapper.selectList(Wrappers.lambdaQuery(BaseTeacher.class).eq(BaseTeacher::getUserId, xjrUser.getId()).select(BaseTeacher::getId));
             List<Long> baseTeacherIds = baseTeacherList.stream().map(BaseTeacher::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherOldIds = xjrUser.getBaseTeacherList().stream().map(BaseTeacher::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -373,18 +377,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
 
                 //如果不等于空则修改
                 if (baseTeacher.getId() != null) {
-                    teacherbaseManagerBaseTeacherMapper.updateById(baseTeacher);
+                    teacherMapper.updateById(baseTeacher);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacher.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherMapper.insert(baseTeacher);
+                    teacherMapper.insert(baseTeacher);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherMapper.deleteBatchIds(baseTeacherRemoveIds);
+                teacherMapper.deleteBatchIds(baseTeacherRemoveIds);
             }
         }
         //********************************* BaseTeacher  增删改  结束 *******************************************/
@@ -392,7 +396,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherContact  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherContact> baseTeacherContactList = teacherbaseManagerBaseTeacherContactMapper.selectList(Wrappers.lambdaQuery(BaseTeacherContact.class).eq(BaseTeacherContact::getUserId, xjrUser.getId()).select(BaseTeacherContact::getId));
+            List<BaseTeacherContact> baseTeacherContactList = teacherContactMapper.selectList(Wrappers.lambdaQuery(BaseTeacherContact.class).eq(BaseTeacherContact::getUserId, xjrUser.getId()).select(BaseTeacherContact::getId));
             List<Long> baseTeacherContactIds = baseTeacherContactList.stream().map(BaseTeacherContact::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherContactOldIds = xjrUser.getBaseTeacherContactList().stream().map(BaseTeacherContact::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -402,18 +406,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherContact baseTeacherContact : xjrUser.getBaseTeacherContactList()) {
                 //如果不等于空则修改
                 if (baseTeacherContact.getId() != null) {
-                    teacherbaseManagerBaseTeacherContactMapper.updateById(baseTeacherContact);
+                    teacherContactMapper.updateById(baseTeacherContact);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherContact.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherContactMapper.insert(baseTeacherContact);
+                    teacherContactMapper.insert(baseTeacherContact);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherContactRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherContactMapper.deleteBatchIds(baseTeacherContactRemoveIds);
+                teacherContactMapper.deleteBatchIds(baseTeacherContactRemoveIds);
             }
         }
         //********************************* BaseTeacherContact  增删改  结束 *******************************************/
@@ -421,7 +425,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherEducation  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherEducation> baseTeacherEducationList = teacherbaseManagerBaseTeacherEducationMapper.selectList(Wrappers.lambdaQuery(BaseTeacherEducation.class).eq(BaseTeacherEducation::getUserId, xjrUser.getId()).select(BaseTeacherEducation::getId));
+            List<BaseTeacherEducation> baseTeacherEducationList = teacherEducationMapper.selectList(Wrappers.lambdaQuery(BaseTeacherEducation.class).eq(BaseTeacherEducation::getUserId, xjrUser.getId()).select(BaseTeacherEducation::getId));
             List<Long> baseTeacherEducationIds = baseTeacherEducationList.stream().map(BaseTeacherEducation::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherEducationOldIds = xjrUser.getBaseTeacherEducationList().stream().map(BaseTeacherEducation::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -431,18 +435,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherEducation baseTeacherEducation : xjrUser.getBaseTeacherEducationList()) {
                 //如果不等于空则修改
                 if (baseTeacherEducation.getId() != null) {
-                    teacherbaseManagerBaseTeacherEducationMapper.updateById(baseTeacherEducation);
+                    teacherEducationMapper.updateById(baseTeacherEducation);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherEducation.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherEducationMapper.insert(baseTeacherEducation);
+                    teacherEducationMapper.insert(baseTeacherEducation);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherEducationRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherEducationMapper.deleteBatchIds(baseTeacherEducationRemoveIds);
+                teacherEducationMapper.deleteBatchIds(baseTeacherEducationRemoveIds);
             }
         }
         //********************************* BaseTeacherEducation  增删改  结束 *******************************************/
@@ -450,7 +454,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherEmploy  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherEmploy> baseTeacherEmployList = teacherbaseManagerBaseTeacherEmployMapper.selectList(Wrappers.lambdaQuery(BaseTeacherEmploy.class).eq(BaseTeacherEmploy::getUserId, xjrUser.getId()).select(BaseTeacherEmploy::getId));
+            List<BaseTeacherEmploy> baseTeacherEmployList = teacherEmployMapper.selectList(Wrappers.lambdaQuery(BaseTeacherEmploy.class).eq(BaseTeacherEmploy::getUserId, xjrUser.getId()).select(BaseTeacherEmploy::getId));
             List<Long> baseTeacherEmployIds = baseTeacherEmployList.stream().map(BaseTeacherEmploy::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherEmployOldIds = xjrUser.getBaseTeacherEmployList().stream().map(BaseTeacherEmploy::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -460,18 +464,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherEmploy baseTeacherEmploy : xjrUser.getBaseTeacherEmployList()) {
                 //如果不等于空则修改
                 if (baseTeacherEmploy.getId() != null) {
-                    teacherbaseManagerBaseTeacherEmployMapper.updateById(baseTeacherEmploy);
+                    teacherEmployMapper.updateById(baseTeacherEmploy);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherEmploy.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherEmployMapper.insert(baseTeacherEmploy);
+                    teacherEmployMapper.insert(baseTeacherEmploy);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherEmployRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherEmployMapper.deleteBatchIds(baseTeacherEmployRemoveIds);
+                teacherEmployMapper.deleteBatchIds(baseTeacherEmployRemoveIds);
             }
         }
         //********************************* BaseTeacherEmploy  增删改  结束 *******************************************/
@@ -479,7 +483,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherFamily  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherFamily> baseTeacherFamilyList = teacherbaseManagerBaseTeacherFamilyMapper.selectList(Wrappers.lambdaQuery(BaseTeacherFamily.class).eq(BaseTeacherFamily::getUserId, xjrUser.getId()).select(BaseTeacherFamily::getId));
+            List<BaseTeacherFamily> baseTeacherFamilyList = baseTeacherFamilyMapper.selectList(Wrappers.lambdaQuery(BaseTeacherFamily.class).eq(BaseTeacherFamily::getUserId, xjrUser.getId()).select(BaseTeacherFamily::getId));
             List<Long> baseTeacherFamilyIds = baseTeacherFamilyList.stream().map(BaseTeacherFamily::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherFamilyOldIds = xjrUser.getBaseTeacherFamilyList().stream().map(BaseTeacherFamily::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -489,18 +493,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherFamily baseTeacherFamily : xjrUser.getBaseTeacherFamilyList()) {
                 //如果不等于空则修改
                 if (baseTeacherFamily.getId() != null) {
-                    teacherbaseManagerBaseTeacherFamilyMapper.updateById(baseTeacherFamily);
+                    baseTeacherFamilyMapper.updateById(baseTeacherFamily);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherFamily.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherFamilyMapper.insert(baseTeacherFamily);
+                    baseTeacherFamilyMapper.insert(baseTeacherFamily);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherFamilyRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherFamilyMapper.deleteBatchIds(baseTeacherFamilyRemoveIds);
+                baseTeacherFamilyMapper.deleteBatchIds(baseTeacherFamilyRemoveIds);
             }
         }
         //********************************* BaseTeacherFamily  增删改  结束 *******************************************/
@@ -508,7 +512,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherFamilyMember  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherFamilyMember> baseTeacherFamilyMemberList = teacherbaseManagerBaseTeacherFamilyMemberMapper.selectList(Wrappers.lambdaQuery(BaseTeacherFamilyMember.class).eq(BaseTeacherFamilyMember::getUserId, xjrUser.getId()).select(BaseTeacherFamilyMember::getId));
+            List<BaseTeacherFamilyMember> baseTeacherFamilyMemberList = familyMemberMapper.selectList(Wrappers.lambdaQuery(BaseTeacherFamilyMember.class).eq(BaseTeacherFamilyMember::getUserId, xjrUser.getId()).select(BaseTeacherFamilyMember::getId));
             List<Long> baseTeacherFamilyMemberIds = baseTeacherFamilyMemberList.stream().map(BaseTeacherFamilyMember::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherFamilyMemberOldIds = xjrUser.getBaseTeacherFamilyMemberList().stream().map(BaseTeacherFamilyMember::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -518,18 +522,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherFamilyMember baseTeacherFamilyMember : xjrUser.getBaseTeacherFamilyMemberList()) {
                 //如果不等于空则修改
                 if (baseTeacherFamilyMember.getId() != null) {
-                    teacherbaseManagerBaseTeacherFamilyMemberMapper.updateById(baseTeacherFamilyMember);
+                    familyMemberMapper.updateById(baseTeacherFamilyMember);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherFamilyMember.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherFamilyMemberMapper.insert(baseTeacherFamilyMember);
+                    familyMemberMapper.insert(baseTeacherFamilyMember);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherFamilyMemberRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherFamilyMemberMapper.deleteBatchIds(baseTeacherFamilyMemberRemoveIds);
+                familyMemberMapper.deleteBatchIds(baseTeacherFamilyMemberRemoveIds);
             }
         }
         //********************************* BaseTeacherFamilyMember  增删改  结束 *******************************************/
@@ -537,7 +541,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         //********************************* BaseTeacherRegular  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<BaseTeacherRegular> baseTeacherRegularList = teacherbaseManagerBaseTeacherRegularMapper.selectList(Wrappers.lambdaQuery(BaseTeacherRegular.class).eq(BaseTeacherRegular::getUserId, xjrUser.getId()).select(BaseTeacherRegular::getId));
+            List<BaseTeacherRegular> baseTeacherRegularList = teacherRegularMapper.selectList(Wrappers.lambdaQuery(BaseTeacherRegular.class).eq(BaseTeacherRegular::getUserId, xjrUser.getId()).select(BaseTeacherRegular::getId));
             List<Long> baseTeacherRegularIds = baseTeacherRegularList.stream().map(BaseTeacherRegular::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> baseTeacherRegularOldIds = xjrUser.getBaseTeacherRegularList().stream().map(BaseTeacherRegular::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -547,18 +551,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             for (BaseTeacherRegular baseTeacherRegular : xjrUser.getBaseTeacherRegularList()) {
                 //如果不等于空则修改
                 if (baseTeacherRegular.getId() != null) {
-                    teacherbaseManagerBaseTeacherRegularMapper.updateById(baseTeacherRegular);
+                    teacherRegularMapper.updateById(baseTeacherRegular);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     baseTeacherRegular.setUserId(xjrUser.getId());
-                    teacherbaseManagerBaseTeacherRegularMapper.insert(baseTeacherRegular);
+                    teacherRegularMapper.insert(baseTeacherRegular);
                 }
             }
             //已经不存在的id 删除
             if (baseTeacherRegularRemoveIds.size() > 0) {
-                teacherbaseManagerBaseTeacherRegularMapper.deleteBatchIds(baseTeacherRegularRemoveIds);
+                teacherRegularMapper.deleteBatchIds(baseTeacherRegularRemoveIds);
             }
         }
         //********************************* BaseTeacherRegular  增删改  结束 *******************************************/
@@ -570,13 +574,13 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
     @Transactional(rollbackFor = Exception.class)
     public Boolean delete(List<Long> ids) {
         teacherbaseManagerXjrUserMapper.deleteBatchIds(ids);
-        teacherbaseManagerBaseTeacherMapper.delete(Wrappers.lambdaQuery(BaseTeacher.class).in(BaseTeacher::getUserId, ids));
-        teacherbaseManagerBaseTeacherContactMapper.delete(Wrappers.lambdaQuery(BaseTeacherContact.class).in(BaseTeacherContact::getUserId, ids));
-        teacherbaseManagerBaseTeacherEducationMapper.delete(Wrappers.lambdaQuery(BaseTeacherEducation.class).in(BaseTeacherEducation::getUserId, ids));
-        teacherbaseManagerBaseTeacherEmployMapper.delete(Wrappers.lambdaQuery(BaseTeacherEmploy.class).in(BaseTeacherEmploy::getUserId, ids));
-        teacherbaseManagerBaseTeacherFamilyMapper.delete(Wrappers.lambdaQuery(BaseTeacherFamily.class).in(BaseTeacherFamily::getUserId, ids));
-        teacherbaseManagerBaseTeacherFamilyMemberMapper.delete(Wrappers.lambdaQuery(BaseTeacherFamilyMember.class).in(BaseTeacherFamilyMember::getUserId, ids));
-        teacherbaseManagerBaseTeacherRegularMapper.delete(Wrappers.lambdaQuery(BaseTeacherRegular.class).in(BaseTeacherRegular::getUserId, ids));
+        teacherMapper.delete(Wrappers.lambdaQuery(BaseTeacher.class).in(BaseTeacher::getUserId, ids));
+        teacherContactMapper.delete(Wrappers.lambdaQuery(BaseTeacherContact.class).in(BaseTeacherContact::getUserId, ids));
+        teacherEducationMapper.delete(Wrappers.lambdaQuery(BaseTeacherEducation.class).in(BaseTeacherEducation::getUserId, ids));
+        teacherEmployMapper.delete(Wrappers.lambdaQuery(BaseTeacherEmploy.class).in(BaseTeacherEmploy::getUserId, ids));
+        baseTeacherFamilyMapper.delete(Wrappers.lambdaQuery(BaseTeacherFamily.class).in(BaseTeacherFamily::getUserId, ids));
+        familyMemberMapper.delete(Wrappers.lambdaQuery(BaseTeacherFamilyMember.class).in(BaseTeacherFamilyMember::getUserId, ids));
+        teacherRegularMapper.delete(Wrappers.lambdaQuery(BaseTeacherRegular.class).in(BaseTeacherRegular::getUserId, ids));
 
         return true;
     }
@@ -591,16 +595,16 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean importData(List<Map<Integer, Object>> excelDataList) {
+    public Boolean importData(List<Map<Integer, Object>> excelDataList) throws ParseException {
         List<User> userList = userService.list(
                 new MPJLambdaWrapper<User>()
                         .select(User::getId)
                         .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
                         .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
         );
-        Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getUserName, x -> x));
+        Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getCredentialNumber, x -> x));
 
-        List<BaseTeacher> teacherList = teacherbaseManagerBaseTeacherMapper.selectJoinList(BaseTeacher.class,
+        List<BaseTeacher> teacherList = teacherMapper.selectJoinList(BaseTeacher.class,
                 new MPJLambdaWrapper<BaseTeacher>()
                         .select(BaseTeacher::getId)
                         .select(BaseTeacher.class, x -> VoToColumnUtil.fieldsToColumns(BaseTeacher.class).contains(x.getProperty()))
@@ -611,6 +615,8 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         List<Long> itemList = new ArrayList<>();
         itemList.add(2023000000000000016L);
         itemList.add(2023000000000000006L);
+        itemList.add(2023000000000000005L);
+        itemList.add(2023000000000000020L);
 
         List<DictionaryDetail> dictionaryList = dictionaryService.list(
                 new QueryWrapper<DictionaryDetail>().lambda()
@@ -648,18 +654,30 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
                         .innerJoin(User.class, User::getId, UserDeptRelation::getUserId)
                         .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
         );
-        Map<Long, List<Long>> userDeptMap = postRelations.stream()
-                .collect(Collectors.groupingBy(UserPostRelation::getUserId, Collectors.mapping(UserPostRelation::getPostId, Collectors.toList())));
+        Map<Long, List<Long>> userDeptMap = deptRelations.stream()
+                .collect(Collectors.groupingBy(UserDeptRelation::getUserId, Collectors.mapping(UserDeptRelation::getDeptId, Collectors.toList())));
+
+        List<BaseTeacherRegular> regularList = teacherRegularMapper.selectList(
+                new MPJLambdaWrapper<BaseTeacherRegular>()
+                        .select(BaseTeacherRegular::getId)
+                        .select(BaseTeacherRegular.class, x -> VoToColumnUtil.fieldsToColumns(BaseTeacherRegular.class).contains(x.getProperty()))
+                        .innerJoin(User.class, User::getId, BaseTeacherRegular::getUserId)
+        );
+        Map<Long, BaseTeacherRegular> regularMap = regularList.stream()
+                .collect(Collectors.toMap(BaseTeacherRegular::getUserId, x -> x));
 
         List<User> updateUserList = new ArrayList<>();
         List<BaseTeacher> updateTeacherList = new ArrayList<>();
         List<UserDeptRelation> updateDeptList = new ArrayList<>();
         List<UserPostRelation> updatePostList = new ArrayList<>();
+        List<BaseTeacherRegular> updateBaseTeacherRegularList = new ArrayList<>();
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
         for (Map<Integer, Object> rowData : excelDataList) {
-            String jobCode = rowData.get(0).toString();
-            if (userMap.containsKey(jobCode)) {
-                User user = userMap.get(jobCode);
+            String credentialNumber = rowData.get(4).toString();
+            if (userMap.containsKey(credentialNumber)) {
+                User user = userMap.get(credentialNumber);
                 user.setName(rowData.get(1).toString());
                 user.setGender(GenderDictionaryEnum.getCode(rowData.get(2).toString()));
                 user.setCredentialType(dictionaryMap.get(rowData.get(3).toString()));
@@ -669,8 +687,16 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
 
                 BaseTeacher teacher = teacherMap.get(user.getId());
                 teacher.setEmployType(dictionaryMap.get(rowData.get(6).toString()));
+                teacher.setJobState(dictionaryMap.get(rowData.get(9).toString()));
+                teacher.setJoinTime(sdf.parse(rowData.get(10).toString()));
                 updateTeacherList.add(teacher);
 
+                BaseTeacherRegular teacherRegular = regularMap.get(user.getId());
+                JSONArray teachingStatus = teacherRegular.getTeachingStatus();
+                teachingStatus.add(dictionaryMap.get(rowData.get(11).toString()));
+                teacherRegular.setTeachingStatus(teachingStatus);
+                updateBaseTeacherRegularList.add(teacherRegular);
+
                 List<Long> deptIds = userDeptMap.get(user.getId());
                 if (deptIds == null || !deptIds.contains(departmentMap.get(rowData.get(7).toString()))) {
                     UserDeptRelation userDeptRelation = new UserDeptRelation();
@@ -705,7 +731,20 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             teacher.setEmployType(dictionaryMap.get(rowData.get(6).toString()));
             teacher.setUserId(user.getId());
             teacher.setCreateDate(LocalDateTime.now());
-            teacherbaseManagerBaseTeacherMapper.insert(teacher);
+            teacher.setJobState(dictionaryMap.get(rowData.get(9).toString()));
+            teacher.setJoinTime(sdf.parse(rowData.get(10).toString()));
+            teacherMapper.insert(teacher);
+
+            BaseTeacherRegular teacherRegular = new BaseTeacherRegular();
+            JSONArray teachingStatus = new JSONArray();
+            teachingStatus.add(dictionaryMap.get(rowData.get(11).toString()));
+            teacherRegular.setTeachingStatus(teachingStatus);
+            teacherRegular.setCreateDate(LocalDateTime.now());
+            teacherRegular.setCreateUserId(StpUtil.getLoginIdAsLong());
+            teacherRegular.setUserId(user.getId());
+            teacherRegular.setDeleteMark(DeleteMark.NODELETE.getCode());
+            teacherRegular.setEnabledMark(EnabledMark.ENABLED.getCode());
+            teacherRegularMapper.insert(teacherRegular);
 
             UserDeptRelation userDeptRelation = new UserDeptRelation();
             userDeptRelation.setDeptId(departmentMap.get(rowData.get(7).toString()));
@@ -736,7 +775,13 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         }
         if (!updateTeacherList.isEmpty()) {
             for (BaseTeacher teacher : updateTeacherList) {
-                teacherbaseManagerBaseTeacherMapper.updateById(teacher);
+                teacherMapper.updateById(teacher);
+            }
+        }
+
+        if(!updateBaseTeacherRegularList.isEmpty()){
+            for (BaseTeacherRegular teacherRegular : updateBaseTeacherRegularList) {
+                teacherRegularMapper.updateById(teacherRegular);
             }
         }
 
@@ -758,11 +803,11 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void changeIsNormal(String jobState, Integer isNormal) {
-        List<BaseTeacher> baseTeacherList = teacherbaseManagerBaseTeacherMapper.selectList(Wrappers.lambdaQuery(BaseTeacher.class)
+        List<BaseTeacher> baseTeacherList = teacherMapper.selectList(Wrappers.lambdaQuery(BaseTeacher.class)
                 .eq(BaseTeacher::getJobState, jobState));
         for (BaseTeacher baseTeacher : baseTeacherList) {
             baseTeacher.setIsNormal(isNormal);
-            teacherbaseManagerBaseTeacherMapper.updateById(baseTeacher);
+            teacherMapper.updateById(baseTeacher);
         }
 
     }
@@ -797,7 +842,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
                 updateBaseTeacher = new BaseTeacher();
                 updateBaseTeacher.setId(baseTeacher.getId());
                 updateBaseTeacher.setJobState("JOB_LZ");
-                baseTeacherMapper.updateById(updateBaseTeacher);
+                teacherMapper.updateById(updateBaseTeacher);
             }
 
             // 处理变更记录
@@ -878,4 +923,9 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         );
         dataUtil.deleteCar(carList);
     }
+
+    @Override
+    public List<XjrUserPageVo> getList(BaseTeacherPageDto dto) {
+        return null;
+    }
 }

+ 1 - 1
src/main/resources/mapper/attendance/AttendanceStatisticsMapper.xml

@@ -5,7 +5,7 @@
 <mapper namespace="com.xjrsoft.module.attendance.mapper.AttendanceStatisticsMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.attendance.dto.AttendanceStatisticsPageDto" resultType="com.xjrsoft.module.attendance.vo.AttendanceStatisticsPageVo">
         SELECT t1.id,t1.year,t1.month,t1.name,t1.start_date,t1.end_date,t2.name AS rule_name,
-        t1.person_count,t1.attendance_days, t1.status,t1.is_need_refresh,t1.time_period FROM attendance_statistics t1
+        t1.person_count,t1.attendance_days, t1.status,t1.is_need_refresh,t1.time_period,t1.remarks FROM attendance_statistics t1
         LEFT JOIN attendance_rule_category t2 ON t1.attendance_rule_category_id = t2.id
         WHERE t1.delete_mark = 0
         <if test="dto.name != null and dto.name != ''">

+ 2 - 2
src/main/resources/mapper/student/BaseNewStudentMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.student.mapper.BaseNewStudentMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.student.dto.BaseNewStudentPageDto" resultType="com.xjrsoft.module.student.vo.BaseNewStudentPageVo">
-        SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,
+        SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,t1.family_mobile,t1.family_address,
         t1.score,t1.graduate_class,t1.source,t5.name AS source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name AS first_ambition,
         t8.name AS second_ambition,t1.is_adjust,t1.status,IFNULL(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name,
         t1.paymnystate,t1.userdef6,t1.previous,t1.province,t1.city,t1.myarea,t1.remarks,t1.is_can_banding,t1.operate_mode,
@@ -107,7 +107,7 @@
         </if>
     </select>
     <select id="getList" parameterType="com.xjrsoft.module.student.dto.BaseNewStudentPageDto" resultType="com.xjrsoft.module.student.vo.BaseNewStudentPageVo">
-        SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,
+        SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,t1.family_mobile,t1.family_address,
         t1.score,t1.graduate_class,t1.source,t5.name AS source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name AS first_ambition,
         t8.name AS second_ambition,t1.is_adjust,t1.status,IFNULL(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name,
         t1.paymnystate,t1.userdef6,t1.previous,t1.province,t1.city,t1.myarea,t1.remarks,t1.is_can_banding,t1.operate_mode,

+ 2 - 2
src/main/resources/mapper/student/BaseStudentGraduateMapper.xml

@@ -60,7 +60,7 @@
     </select>
 
     <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,
+        SELECT t5.id,t1.user_id,t1.student_id,t2.name,t4.name AS major_name,t6.name AS stduy_status_cn,t5.leaving_bed_date,
         IFNULL(t5.status,0) AS status,t5.certificate_number,t5.certificate_date,t7.name AS class_name,t8.name AS grade_name,t5.appendix_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
@@ -71,6 +71,6 @@
         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
-        AND t1.user_id = #{id}
+        AND t5.id = #{id}
     </select>
 </mapper>

+ 25 - 0
src/main/resources/mapper/teacher/BaseTeacherMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.teacher.mapper.BaseTeacherMapper">
+    <select id="getList" parameterType="com.xjrsoft.module.teacher.dto.BaseTeacherPageDto" resultType="com.xjrsoft.module.teacher.vo.XjrUserPageVo">
+        SELECT DISTINCT t2.* FROM base_teacher t1
+        INNER JOIN xjr_user t2 ON t1.user_id = t2.id
+        LEFT JOIN xjr_user_dept_relation t3 ON t2.id = t3.user_id
+        LEFT JOIN xjr_user_role_relation t4 ON t2.id = t4.user_id
+        WHERE t2.delete_mark = 0 AND t1.delete_mark = 0
+        <if test="dto.deptIds != null and dto.deptIds.size() > 0">
+            AND t3.dept_id IN
+            <foreach item="deptId" index="index" collection="dto.deptIds" open="(" separator="," close=")">
+                #{deptId}
+            </foreach>
+        </if>
+        <if test="dto.userIds != null and dto.userIds.size() > 0">
+            AND t2.id IN
+            <foreach item="userId" index="index" collection="dto.userIds" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+        </if>
+    </select>
+</mapper>

+ 13 - 14
src/main/resources/sqlScript/20250421_sql.sql

@@ -1,23 +1,22 @@
 ALTER TABLE professional_title ADD UNIQUE (professional_title_no);
 
-create index user_id_semester_id_index
-    on textbook_student_claim (student_user_id, base_semester_id)
-    comment '用户学期复合索引';
-
-create index class_id_semester_id_index
-    on textbook_student_claim (class_id, base_semester_id)
-    comment '班级学期复合索引';
-
-create index user_id_textbook_id_index
-    on textbook_student_claim (student_user_id, textbook_id)
-    comment '用户教材复合索引';
-
-# 上面已经在正式服运行-------------------------------------------------------------
-
+CREATE INDEX user_id_semester_id_index
+    ON textbook_student_claim (student_user_id, base_semester_id)
+    COMMENT '用户学期复合索引';
 
+CREATE INDEX class_id_semester_id_index
+    ON textbook_student_claim (class_id, base_semester_id)
+    COMMENT '班级学期复合索引';
 
+CREATE INDEX user_id_textbook_id_index
+    ON textbook_student_claim (student_user_id, textbook_id)
+    COMMENT '用户教材复合索引';
 
 ALTER TABLE base_student_school_roll
   ADD COLUMN internship_state VARCHAR (20) NULL COMMENT '实习状态(xjr_dictionary_item[internship_state])' AFTER candidate_number;
 
 UPDATE base_student_school_roll SET internship_state = 'IT_0001' WHERE archives_status = 'FB2901';
+# 上面已经在正式服运行-------------------------------------------------------------
+
+ALTER TABLE attendance_statistics
+  ADD COLUMN remarks VARCHAR (500) NULL COMMENT '备注' AFTER attendance_days;

+ 5 - 0
src/main/resources/sqlScript/鸿合课表视图.sql

@@ -0,0 +1,5 @@
+CREATE VIEW course_table_view AS
+SELECT t1.class_id,t1.class_name,t1.teacher_name,t1.course_name, t2.short_name,t1.weeks_cn,t1.schedule_date,t1.start_time,t1.end_time FROM course_table t1
+LEFT JOIN class_time t2 ON t1.time_number = t2.number
+LEFT JOIN base_semester t3 ON t1.base_semester_id = t3.id
+WHERE t1.schedule_date >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY);