Przeglądaj źródła

Merge branch 'pre'

dzx 8 miesięcy temu
rodzic
commit
9f5299d8ec

+ 111 - 0
src/main/java/com/xjrsoft/common/enums/JobStateEnum.java

@@ -0,0 +1,111 @@
+package com.xjrsoft.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 教职工在职状态
+ * @author dzx
+ * @date 2025年4月7日
+ * 学籍状态
+ */
+public enum JobStateEnum {
+
+    JOB_DDSX("JOB_DDSX", "带队实习"),
+
+    JOB_WCPX("JOB_WCPX", "外出培训"),
+
+    ZZZT10001("ZZZT10001", "退休"),
+
+    ZZZT10002("ZZZT10002", "离休"),
+
+    ZZZT10003("ZZZT10003", "死亡"),
+
+    ZZZT10004("ZZZT10004", "返聘"),
+
+    ZZZT10005("ZZZT10005", "辞职"),
+
+    ZZZT10006("ZZZT10006", "离职"),
+
+    ZZZT10007("ZZZT10007", "开除"),
+
+    ZZZT10008("ZZZT10008", "下落不明"),
+
+    ZZZT10009("ZZZT10009", "在职"),
+    ZZZT10010("ZZZT10010", "延聘"),
+    ZZZT10011("ZZZT10011", "待退休"),
+    ZZZT10012("ZZZT10012", "长病假"),
+    ZZZT10013("ZZZT10013", "因公出国"),
+    ZZZT10014("ZZZT10014", "停薪留职"),
+    ZZZT10015("ZZZT10015", "待岗"),
+    ZZZT10016("ZZZT10016", "其他");
+
+    final String code;
+    final String value;
+
+    private static final Map<String, String> lookup = new HashMap<>();
+
+    static {
+        for (JobStateEnum s : JobStateEnum.values()) {
+            lookup.put(s.getCode(), s.getValue());
+        }
+    }
+
+
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    JobStateEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+
+    public static String fromCode(String code) {
+        return lookup.get(code);
+    }
+
+    /**
+     * 判断是否在职
+     * @param code 在职状态编码
+     * @return true:在职 false:不在职
+     */
+    public static boolean isBeOnTheJobByCode(String code) {
+        if(JOB_DDSX.code.equals(code)){
+            return true;
+        }else if(JOB_WCPX.code.equals(code)){
+            return true;
+        }else if(ZZZT10004.code.equals(code)){
+            return true;
+        }else if(ZZZT10009.code.equals(code)){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    /**
+     * 判断是否在职
+     * @param value 在职状态中文
+     * @return true:在职 false:不在职
+     */
+    public static boolean isBeOnTheJobByValue(String value) {
+        if(JOB_DDSX.value.equals(value)){
+            return true;
+        }else if(JOB_WCPX.value.equals(value)){
+            return true;
+        }else if(ZZZT10004.value.equals(value)){
+            return true;
+        }else if(ZZZT10009.value.equals(value)){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/databoard/controller/DatadetailController.java

@@ -295,7 +295,7 @@ public class DatadetailController {
     @XjrLog(value = "教职工详情数据统计", saveResponseData = true)
     public RT<TeacherStatisticsDetailVo> teahcerStatistics(@Valid StatisticsDetailDto dto) throws ParseException {
         String sql = "SELECT IFNULL(t2.name,'未填写') AS item ,ifnull(COUNT(*), 0) AS a_count FROM base_teacher_education t1" +
-                " left join base_teacher t3 on t1.user_id = t2.user_id" +
+                " left join base_teacher t3 on t1.user_id = t3.user_id" +
                 " LEFT JOIN xjr_dictionary_detail t2 ON t1.education  = t2.code" +
                 " WHERE t1.delete_mark = 0 and t3.job_state in ('ZZZT10004','ZZZT10009','JOB_WCPX','JOB_DDSX')" +
                 " GROUP BY t2.name";

+ 8 - 0
src/main/java/com/xjrsoft/module/job/ClassGraduateTask.java

@@ -1,12 +1,14 @@
 package com.xjrsoft.module.job;
 
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.base.service.IBaseGradeService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 /**
+ * 自动别业班级
  * @author dzx
  * @date 2025/1/14
  */
@@ -17,11 +19,17 @@ public class ClassGraduateTask {
     @Autowired
     private IBaseClassService classService;
 
+    @Autowired
+    private IBaseGradeService gradeService;
+
     @Scheduled(cron = "0 */15 23 30 6 ?")
     public void execute() {
         doExecute();
     }
 
+    /**
+     * 根据年级自动毕业班级和学生
+     */
     public void doExecute() {
 
     }

+ 4 - 4
src/main/java/com/xjrsoft/module/job/EnrollmentStatisticsInfoTask.java

@@ -42,7 +42,7 @@ public class EnrollmentStatisticsInfoTask {
     private EnrollmentStatisticsInfoMapper enrollmentStatisticsInfoMapper;
 
     @Async
-    @Scheduled(cron = "00 0/15 * * * ?")
+    @Scheduled(cron = "00 0/20 * * * ?")
     public void execute() {
         doExecute();
     }
@@ -55,7 +55,7 @@ public class EnrollmentStatisticsInfoTask {
         dto.setYear(now.getYear() + "");
         EnrollmentStatisticsInfoVo info = pbCseFeeobjupdateService.getEnrollmentStatisticsInfo(dto);
         if(info != null){
-//            enrollmentStatisticsInfoMapper.deleteDataByDate(dataDate);
+            enrollmentStatisticsInfoMapper.deleteDataByDate(dataDate);
             EnrollmentStatisticsInfo infoData = new EnrollmentStatisticsInfo();
             infoData.setEnabledMark(EnabledMark.ENABLED.getCode());
             infoData.setDeleteMark(DeleteMark.NODELETE.getCode());
@@ -72,7 +72,7 @@ public class EnrollmentStatisticsInfoTask {
         EnrollmentStatisticsGraduationInfoVo graduationInfo = pbCseFeeobjupdateService.getEnrollmentStatisticsGraduationInfo(graduationInfoDto);
 
         if(graduationInfo != null){
-//            enrollmentStatisticsInfoMapper.deleteGraduationDataByDate(dataDate);
+            enrollmentStatisticsInfoMapper.deleteGraduationDataByDate(dataDate);
 
             EnrollmentStatisticsInfo infoData = new EnrollmentStatisticsInfo();
             infoData.setEnabledMark(EnabledMark.ENABLED.getCode());
@@ -98,7 +98,7 @@ public class EnrollmentStatisticsInfoTask {
         EnrollmentStatisticsCalendarInfoVo calendarInfoVo = pbCseFeeobjupdateService.getEnrollmentStatisticsCalendarInfo(calendarInfoDto);
 
         if(calendarInfoVo != null){
-//            enrollmentStatisticsInfoMapper.deleteCalendarDataByDate(lastSundayStr, thisSaturdayStr);
+            enrollmentStatisticsInfoMapper.deleteCalendarDataByDate(lastSundayStr, thisSaturdayStr);
 
             EnrollmentStatisticsInfo infoData = new EnrollmentStatisticsInfo();
             infoData.setEnabledMark(EnabledMark.ENABLED.getCode());

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/controller/WfMeetingApplyController.java

@@ -197,7 +197,7 @@ public class WfMeetingApplyController {
     @SaCheckPermission("wfmeetingapply:detail")
     @XjrLog(value = "会议签到二维码-生成二维码")
     public RT<String> qrcode(@RequestParam Long id) throws Exception {
-        String url = commonPropertiesConfig.getDomainApp() + "/pages/meeting/detail?id=" + id + "&type=1";
+        String url = commonPropertiesConfig.getDomainApp() + "/pages/meeting/permissions?id=" + id + "&type=1";
         int width = 400;
         int height = 400;
         int margin = 1;

+ 2 - 0
src/main/java/com/xjrsoft/module/oa/dto/TodayMeetingMobilePageDto.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.oa.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -23,5 +24,6 @@ public class TodayMeetingMobilePageDto extends PageInput {
      * 会议日期
      */
     @ApiModelProperty("会议日期")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate meetingApplyDate;
 }

+ 5 - 3
src/main/java/com/xjrsoft/module/organization/service/impl/UserServiceImpl.java

@@ -359,10 +359,12 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
 //    public boolean unbindOpenid(Long id) {
     public boolean unbindOpenid(UnbindOpenidDto dto) {
         // 验证手机验证码
-        boolean verifyResult = smsCtcc.captchaVerify(dto.getMobile(), dto.getCode());
+        if(StrUtil.isNotEmpty(dto.getMobile())){
+            boolean verifyResult = smsCtcc.captchaVerify(dto.getMobile(), dto.getCode());
 
-        if(!verifyResult){
-            throw new MyException("验证码错误");
+            if(!verifyResult){
+                throw new MyException("验证码错误");
+            }
         }
 
         User updateUser = new User();

+ 5 - 0
src/main/java/com/xjrsoft/module/room/service/impl/WfRoomApplicantServiceImpl.java

@@ -21,7 +21,9 @@ import com.xjrsoft.module.room.mapper.WfRoomApplicantMapper;
 import com.xjrsoft.module.room.service.IWfRoomApplicantService;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
+import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
 import lombok.AllArgsConstructor;
+import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -84,10 +86,13 @@ public class WfRoomApplicantServiceImpl extends MPJBaseServiceImpl<WfRoomApplica
         WfRoomApplicant applicant = this.getById(id);
         List<User> list = userService.list(
                 new MPJLambdaWrapper<User>()
+                        .distinct()
                         .select(User::getId)
                         .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
                         .innerJoin(UserStudent.class, UserStudent::getUserId, User::getId)
+                        .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, UserStudent::getId)
                         .eq(UserStudent::getStudentId, applicant.getApplicantUserId())
+                        .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
                         .isNotNull(User::getOpenId)
         );
         SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日");

+ 3 - 0
src/main/java/com/xjrsoft/module/teacher/service/ITeacherbaseManagerService.java

@@ -45,4 +45,7 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
     void changeIsNormal(String jobState, Integer isNormal);
 
     void teacherDepartDataHandle(Long formId);
+
+    void disabledUser(Long userId);
+
 }

+ 12 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java

@@ -14,6 +14,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
+import com.xjrsoft.common.enums.JobStateEnum;
 import com.xjrsoft.common.enums.RoleEnum;
 import com.xjrsoft.common.enums.TeaChangeTypeEnum;
 import com.xjrsoft.common.exception.MyException;
@@ -258,6 +259,11 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
 
             // 插入变更记录
             baseTeacherChangeRecordMapper.insert(insetBaseTeacherChangeRecord);
+
+            //如果在职状态改为了非在职,禁用账号,并清空海康相关信息
+            if(!JobStateEnum.isBeOnTheJobByCode(oldJobState)){
+                disabledUser(dto.getId());
+            }
         }
 
         XjrUser xjrUser = BeanUtil.toBean(dto, XjrUser.class);
@@ -810,4 +816,10 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             }
         }
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void disabledUser(Long userId) {
+
+    }
 }