Browse Source

Merge branch 'pre'

dzx 1 year ago
parent
commit
6216f51438

+ 2 - 2
.drone.yml

@@ -28,7 +28,7 @@ steps:
       - docker build -f ./Dockerfile -t $IMAGE ./
 
   - name: run
-    image: docker/compose
+    image: docker/compose:1.29.2
     depends_on: [build]
     volumes:
       - name: docker
@@ -81,7 +81,7 @@ steps:
       - docker build -f ./Dockerfile -t $IMAGE ./
 
   - name: run
-    image: docker/compose
+    image: docker/compose:1.29.2
     depends_on: [build]
     volumes:
       - name: docker

+ 4 - 1
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.ArchivesStatusEnum;
+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;
@@ -85,7 +86,9 @@ public class StudentStatisticsController {
         List<String> roleList = StpUtil.getRoleList();
         long teacherId = StpUtil.getLoginIdAsLong();
         List<BaseClass> classList = baseClassService.list(
-                new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getTeacherId, teacherId)
+                new QueryWrapper<BaseClass>().lambda()
+                        .eq(BaseClass::getTeacherId, teacherId)
+                        .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
         );
         if(roleList.size() == 2 && roleList.contains("CLASSTE") && roleList.contains("TEACHER")){
             if(classList != null && !classList.isEmpty()){

+ 3 - 2
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeStatisticsServiceImpl.java

@@ -29,6 +29,7 @@ import com.xjrsoft.module.classtime.vo.TeacherListVo;
 import com.xjrsoft.module.classtime.vo.WeekTimeRangeVo;
 import com.xjrsoft.module.oa.entity.WfTeacherCourseTime;
 import lombok.AllArgsConstructor;
+import me.zhyd.oauth.log.Log;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
@@ -227,7 +228,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                         record.setClassTime1(sum);
                         for (LocalDate localDate : allDateList) {
                             double sum1 = courseTimes.stream()
-                                    .filter(x -> x.getTeacherIds().contains(teacher.getId().toString()) && localDate.equals(x.getScheduleDate()))
+                                        .filter(x -> x.getTeacherIds().contains(teacher.getId().toString()) && localDate.equals(x.getScheduleDate()))
                                     .mapToDouble(WfTeacherCourseTime::getCourseTime).sum();
                             JsonObject courseJson = new JsonObject();
                             courseJson.addProperty("type", CourseTimeTypeEnum.CTT001.getValue());
@@ -567,7 +568,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
             this.updateById(statistics);
             return true;
         }catch (Exception e){
-            log.error(e.getMessage());
+            Log.error(e.getMessage(), e);
             throw new MyException("统计出错,请联系管理员");
         }
     }

+ 2 - 0
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -36,4 +36,6 @@ public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
     List<WfCourseAdjust> getExceptCourseList(@Param("userId") Long userId);
 
     List<ClassTeacherVo> getClassTeacherIds(@Param("dto") ClassTeacherDto dto);
+
+    List<Long> getExceptCourseIds(@Param("userId") Long userId);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/courseTable/service/ICourseTableService.java

@@ -49,4 +49,7 @@ public interface ICourseTableService extends IService<CourseTable> {
     List<ClassOptionVo> getClassListByTeacherId(ClassOptionDto dto);
 
 
+    void deleteBakData(Long wfCourseAdjustId);
+
+
 }

+ 7 - 11
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -304,17 +304,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         }
         dto.setAdjustType(adjustType);
         //查询正在进行中或者已经完成
-        List<WfCourseAdjust> exceptCourseList = courseTableMapper.getExceptCourseList(dto.getTeacherId());
-        List<Long> courseIds = new ArrayList<>();
-        for (WfCourseAdjust courseAdjust : exceptCourseList) {
-            String[] split = courseAdjust.getCourseId().split(",");
-            for (String s : split) {
-                if(StrUtil.isEmpty(s)){
-                    continue;
-                }
-                courseIds.add(Long.parseLong(s));
-            }
-        }
+        List<Long> courseIds = courseTableMapper.getExceptCourseIds(dto.getTeacherId());
         dto.setExceptCourseList(courseIds);
         List<CourseListVo> list = courseTableMapper.getAdjustList(dto);
         for (CourseListVo courseListVo : list) {
@@ -983,4 +973,10 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         inputStream.close();
         return result;
     }
+
+
+    @Override
+    public void deleteBakData(Long wfCourseAdjustId) {
+        courseTableBakMapper.delete(new QueryWrapper<CourseTableBak>().lambda().eq(CourseTableBak::getWfCourseAdjustId, wfCourseAdjustId));
+    }
 }

+ 15 - 6
src/main/java/com/xjrsoft/module/form/controller/FormExecuteController.java

@@ -6,12 +6,14 @@ import cn.hutool.db.Entity;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.handler.FormContentStyleStrategy;
 import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.common.utils.DatasourceUtil;
 import com.xjrsoft.common.utils.LocalDateTimeUtil;
 import com.xjrsoft.module.authority.dto.BatchSetDataAuthDto;
@@ -37,6 +39,8 @@ import com.xjrsoft.module.generator.constant.ComponentTypeConstant;
 import com.xjrsoft.module.generator.entity.ColumnConfig;
 import com.xjrsoft.module.generator.entity.TableConfig;
 import com.xjrsoft.module.student.service.IStudentConsumeDateService;
+import com.xjrsoft.module.system.entity.XjrTipsMessage;
+import com.xjrsoft.module.system.service.IXjrTipsMessageService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -87,6 +91,7 @@ public class FormExecuteController {
     
     private final IFormTemplateService formTemplateService;
     private final IStudentConsumeDateService studentConsumeDateService;
+    private final IXjrTipsMessageService xjrTipsMessageService;
 
     /**
      * 自定义表单 根据配置获取列表数据 不分页
@@ -309,15 +314,19 @@ public class FormExecuteController {
     @ApiOperation(value = "导入")
     public R importData(@RequestParam String releaseId, @RequestParam MultipartFile file) throws IOException {
 
-        if( "1815674695242059776".equals(releaseId)) {
-            String result = studentConsumeDateService.excelImport(file);
-            if (result.length() > 0) {
-                throw new MyException(result);
+        String sql = "SELECT id,code,value,remark FROM base_system_config WHERE code= 'studentConsumeDate' ";
+        Map<String, Object> systemConfigMap = SqlRunnerAdapter.db().selectOne(sql);
+        if (systemConfigMap != null && systemConfigMap.get("value") != null) {
+            if (systemConfigMap.get("value").equals(releaseId)) {
+                String result = studentConsumeDateService.excelImport(file);
+                if (result.length() > 0) {
+                    throw new MyException(result);
+                }
+                return R.ok("全部成功", true);
             }
-
-            return R.ok("全部成功", true);
         }
 
+
         FormRelease formRelease = formReleaseService.getById(releaseId);
         FormReleaseConfig formReleaseConfig = JSONUtil.toBean(formRelease.getConfigJson(), FormReleaseConfig.class);
         // 配置excel第一行字段名

+ 61 - 7
src/main/java/com/xjrsoft/module/liteflow/node/StudentChangeClassNode.java

@@ -1,16 +1,28 @@
 package com.xjrsoft.module.liteflow.node;
 
 import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xjrsoft.common.enums.WorkflowApproveType;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.student.entity.StudentChangeClass;
 import com.xjrsoft.module.student.mapper.StudentChangeClassMapper;
 import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
+import com.xjrsoft.module.workflow.entity.WorkflowRecord;
+import com.xjrsoft.module.workflow.mapper.WorkflowRecordMapper;
+import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
 import com.yomahub.liteflow.core.NodeComponent;
+import org.apache.commons.lang.StringUtils;
+import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * 学生转班流程结束后,修改学生班级信息
@@ -23,19 +35,61 @@ public class StudentChangeClassNode extends NodeComponent {
     private IBaseStudentSchoolRollService studentSchoolRollService;
     @Autowired
     private IBaseClassService baseClassService;
+
+    @Autowired
+    private IWorkflowExecuteService workflowExecuteService;
+
+    @Autowired
+    private WorkflowRecordMapper workflowRecordMapper;
+
     @Override
     public void process() throws Exception {
         // 获取表单中数据编号
         Map<String, Object> params = this.getFirstContextBean();
-        Object value = util.getFormDatKey(params,"id");
+        Object value = util.getFormDatKey(params, "id");
         Long formId = Convert.toLong(value);
-        if (formId != null) {
-            //查询出数据
-            StudentChangeClass changeClass = studentChangeClassMapper.selectById(formId);
+        Object processInstanceId = params.get("processInstanceId");
+        if (processInstanceId == null) {
+            return;
+        }
+        String processInstanceIdStr = Convert.toStr(processInstanceId);
+        if (formId != null && StringUtils.isNotEmpty(processInstanceIdStr)) {
+            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+                @Override
+                public void afterCommit() {
+                    CompletableFuture.runAsync(() -> {
+                        Optional<HistoricProcessInstance> historicProcessInstanceOptional = workflowExecuteService.getHistoricProcessInstance(processInstanceId.toString());
+
+                        if (historicProcessInstanceOptional.isEmpty()) {
+                            return;
+                        }
+                        HistoricProcessInstance historicProcessInstance = historicProcessInstanceOptional.get();
+                        if (!historicProcessInstance.getState().equals(HistoricProcessInstance.STATE_ACTIVE)) {
+                            // 获取流程记录中的非正常结束
+                            LambdaQueryWrapper<WorkflowRecord> workflowRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                            workflowRecordLambdaQueryWrapper
+                                    .and(wq -> wq.eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.DISAGREE.getCode())
+                                            .or()
+                                            .eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.WITHDRAW.getCode())
+                                    )
+                                    .eq(WorkflowRecord::getProcessId, processInstanceId)
+                            ;
+                            List<WorkflowRecord> workflowRecordList = workflowRecordMapper.selectList(workflowRecordLambdaQueryWrapper);
+
+                            if (!workflowRecordList.isEmpty()) {
+                                return;
+                            }
+                        }
+
+                        //查询出数据
+                        StudentChangeClass changeClass = studentChangeClassMapper.selectById(formId);
 
-            BaseClass baseClass =baseClassService.getById(changeClass.getAfterClassId());
-            //修改学生班级
-            studentSchoolRollService.updateStudentClass(changeClass.getAfterClassId(),baseClass.getMajorSetId(), changeClass.getStudentUserId());
+                        BaseClass baseClass =baseClassService.getById(changeClass.getAfterClassId());
+                        //修改学生班级
+                        studentSchoolRollService.updateStudentClass(changeClass.getAfterClassId(),baseClass.getMajorSetId(), changeClass.getStudentUserId());
+                    });
+                }
+            });
         }
     }
 }

+ 66 - 13
src/main/java/com/xjrsoft/module/liteflow/node/StudentDropOutNode.java

@@ -1,18 +1,30 @@
 package com.xjrsoft.module.liteflow.node;
 
 import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.xjrsoft.common.enums.ArchivesStatusEnum;
 import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.enums.WorkflowApproveType;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.entity.StudentDropOut;
 import com.xjrsoft.module.student.mapper.StudentDropOutMapper;
 import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
+import com.xjrsoft.module.workflow.entity.WorkflowRecord;
+import com.xjrsoft.module.workflow.mapper.WorkflowRecordMapper;
+import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
 import com.yomahub.liteflow.core.NodeComponent;
+import org.apache.commons.lang.StringUtils;
+import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * 学生退学
@@ -24,24 +36,65 @@ public class StudentDropOutNode extends NodeComponent {
     @Autowired
     private IBaseStudentSchoolRollService studentSchoolRollService;
 
+    @Autowired
+    private IWorkflowExecuteService workflowExecuteService;
+
+    @Autowired
+    private WorkflowRecordMapper workflowRecordMapper;
+
     @Override
     public void process() throws Exception {
         // 获取表单中数据编号
         Map<String, Object> params = this.getFirstContextBean();
-        Object value = util.getFormDatKey(params,"id");
+        Object value = util.getFormDatKey(params, "id");
         Long formId = Convert.toLong(value);
-        if (formId != null) {
-            //查询出数据
-            StudentDropOut studentDropOut = studentDropOutMapper.selectById(formId);
-            //跟新学籍信息
-            BaseStudentSchoolRoll schoolRoll = studentSchoolRollService.getOne(
-                new QueryWrapper<BaseStudentSchoolRoll>().lambda()
-                .eq(BaseStudentSchoolRoll::getClassId, studentDropOut.getClassId())
-                .eq(BaseStudentSchoolRoll::getUserId, studentDropOut.getStudentUserId())
-                .eq(BaseStudentSchoolRoll::getDeleteMark, DeleteMark.NODELETE.getCode())
-            );
-            schoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2904.getCode());
-            studentSchoolRollService.updateById(schoolRoll);
+        Object processInstanceId = params.get("processInstanceId");
+        if (processInstanceId == null) {
+            return;
+        }
+        String processInstanceIdStr = Convert.toStr(processInstanceId);
+        if (formId != null && StringUtils.isNotEmpty(processInstanceIdStr)) {
+            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+                @Override
+                public void afterCommit() {
+                    CompletableFuture.runAsync(() -> {
+                        Optional<HistoricProcessInstance> historicProcessInstanceOptional = workflowExecuteService.getHistoricProcessInstance(processInstanceId.toString());
+
+                        if (historicProcessInstanceOptional.isEmpty()) {
+                            return;
+                        }
+                        HistoricProcessInstance historicProcessInstance = historicProcessInstanceOptional.get();
+                        if (!historicProcessInstance.getState().equals(HistoricProcessInstance.STATE_ACTIVE)) {
+                            // 获取流程记录中的非正常结束
+                            LambdaQueryWrapper<WorkflowRecord> workflowRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                            workflowRecordLambdaQueryWrapper
+                                    .and(wq -> wq.eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.DISAGREE.getCode())
+                                            .or()
+                                            .eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.WITHDRAW.getCode())
+                                    )
+                                    .eq(WorkflowRecord::getProcessId, processInstanceId)
+                            ;
+                            List<WorkflowRecord> workflowRecordList = workflowRecordMapper.selectList(workflowRecordLambdaQueryWrapper);
+
+                            if (!workflowRecordList.isEmpty()) {
+                                return;
+                            }
+                        }
+
+                        //查询出数据
+                        StudentDropOut studentDropOut = studentDropOutMapper.selectById(formId);
+                        //跟新学籍信息
+                        BaseStudentSchoolRoll schoolRoll = studentSchoolRollService.getOne(
+                                new QueryWrapper<BaseStudentSchoolRoll>().lambda()
+                                        .eq(BaseStudentSchoolRoll::getClassId, studentDropOut.getClassId())
+                                        .eq(BaseStudentSchoolRoll::getUserId, studentDropOut.getStudentUserId())
+                                        .eq(BaseStudentSchoolRoll::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        );
+                        schoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2904.getCode());
+                        studentSchoolRollService.updateById(schoolRoll);
+                    });
+                }
+            });
         }
     }
 }

+ 59 - 5
src/main/java/com/xjrsoft/module/liteflow/node/WfCourseAdjustNode.java

@@ -1,14 +1,26 @@
 package com.xjrsoft.module.liteflow.node;
 
 import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xjrsoft.common.enums.WorkflowApproveType;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
+import com.xjrsoft.module.workflow.entity.WorkflowRecord;
+import com.xjrsoft.module.workflow.mapper.WorkflowRecordMapper;
+import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
 import com.yomahub.liteflow.core.NodeComponent;
+import org.apache.commons.lang.StringUtils;
+import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * 调课规则
@@ -21,15 +33,57 @@ public class WfCourseAdjustNode extends NodeComponent {
     @Autowired
     private IWfCourseAdjustService wfCourseAdjustService;
 
+    @Autowired
+    private IWorkflowExecuteService workflowExecuteService;
+
+    @Autowired
+    private WorkflowRecordMapper workflowRecordMapper;
+
     @Override
     public void process() throws Exception {
+        // 获取表单中数据编号
         Map<String, Object> params = this.getFirstContextBean();
-        Object value = util.getFormDatKey(params,"id");
+        Object value = util.getFormDatKey(params, "id");
         Long formId = Convert.toLong(value);
-        if (formId != null) {
-            // 数据处理
-            WfCourseAdjust courseAdjust = wfCourseAdjustService.getById(formId);
-            courseTableService.adjustCourse(courseAdjust);
+        Object processInstanceId = params.get("processInstanceId");
+        if (processInstanceId == null) {
+            return;
+        }
+        String processInstanceIdStr = Convert.toStr(processInstanceId);
+        if (formId != null && StringUtils.isNotEmpty(processInstanceIdStr)) {
+            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+                @Override
+                public void afterCommit() {
+                    CompletableFuture.runAsync(() -> {
+                        Optional<HistoricProcessInstance> historicProcessInstanceOptional = workflowExecuteService.getHistoricProcessInstance(processInstanceId.toString());
+
+                        if (historicProcessInstanceOptional.isEmpty()) {
+                            return;
+                        }
+                        HistoricProcessInstance historicProcessInstance = historicProcessInstanceOptional.get();
+                        if (!historicProcessInstance.getState().equals(HistoricProcessInstance.STATE_ACTIVE)) {
+                            // 获取流程记录中的非正常结束
+                            LambdaQueryWrapper<WorkflowRecord> workflowRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                            workflowRecordLambdaQueryWrapper
+                                    .and(wq -> wq.eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.DISAGREE.getCode())
+                                            .or()
+                                            .eq(WorkflowRecord::getWorkflowApproveType, WorkflowApproveType.WITHDRAW.getCode())
+                                    )
+                                    .eq(WorkflowRecord::getProcessId, processInstanceId)
+                            ;
+                            List<WorkflowRecord> workflowRecordList = workflowRecordMapper.selectList(workflowRecordLambdaQueryWrapper);
+
+                            if (!workflowRecordList.isEmpty()) {
+                                courseTableService.deleteBakData(formId);
+                                return;
+                            }
+                        }
+
+                        WfCourseAdjust courseAdjust = wfCourseAdjustService.getById(formId);
+                        courseTableService.adjustCourse(courseAdjust);
+                    });
+                }
+            });
         }
     }
 }

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

@@ -589,7 +589,7 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                     ScriptEngine engine = manager.getEngineByName("JavaScript");
                     try {
                         double result = ((Number) engine.eval(replacedExpression)).doubleValue();
-                        c.setTeacherAssessScore(result + "");
+                        c.setTeacherAssessScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
                     } catch (ScriptException e) {
                         Log.error(e.getMessage(), e);
                     }

+ 5 - 5
src/main/java/com/xjrsoft/module/workflow/dto/MyProcessPageDto.java

@@ -6,7 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import java.util.Date;
+import java.time.LocalDate;
 
 /**
  * @Author: tzx
@@ -18,14 +18,14 @@ public class MyProcessPageDto extends PageInput {
     /**
      * 开始时间
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date startTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startTime;
 
     /**
      * 结束时间
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date endTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endTime;
 
     /**
      * 模板名称

+ 5 - 4
src/main/resources/mapper/classtime/ClassTimeStatisticsMapper.xml

@@ -10,10 +10,11 @@
     </select>
 
     <select id="getWfTeacherCourseTimeList" parameterType="com.xjrsoft.module.classtime.entity.ClassTimeStatistics" resultType="com.xjrsoft.module.oa.entity.WfTeacherCourseTime">
-        SELECT t1.* FROM wf_teacher_course_time t1
-        INNER JOIN xjr_workflow_form_relation t2 ON t1.id = t2.form_key_value
-        WHERE t2.current_state = 'COMPLETED'
-        and t1.schedule_date BETWEEN #{dto.startDate} and #{dto.endDate}
+        SELECT t2.id,t2.apply_user_id,t2.dept_id,t1.course_time_type,t1.course_time,t1.schedule_date,t1.remark,t1.explains, t1.teacher_id as teacher_ids FROM wf_teacher_course_time_detail t1
+        INNER JOIN wf_teacher_course_time t2 ON t1.wf_teacher_course_time_id = t2.id
+        INNER JOIN xjr_workflow_form_relation t3 ON t2.id = t3.form_key_value
+        WHERE t3.current_state = 'COMPLETED' and t2.enabled_mark = 1
+        AND t1.schedule_date BETWEEN #{dto.startDate} and #{dto.endDate}
     </select>
 
     <select id="getCourseList" parameterType="com.xjrsoft.module.classtime.entity.ClassTimeStatistics" resultType="com.xjrsoft.module.classtime.vo.CourseListVo">

+ 8 - 0
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -77,6 +77,14 @@
         and a1.user_id = #{userId}
     </select>
 
+    <select id="getExceptCourseIds" parameterType="java.lang.Long" resultType="java.lang.Long">
+        SELECT a0.id FROM course_table_bak a0
+        INNER JOIN wf_course_adjust a1 ON a1.id = a0.wf_course_adjust_id
+        INNER JOIN xjr_workflow_form_relation a2 ON a1.id = a2.form_key_value
+        WHERE a1.delete_mark = 0 AND a1.enabled_mark = 1 AND a2.current_state IN ('COMPLETED','ACTIVE')
+        AND a1.user_id = #{userId}
+    </select>
+
     <select id="getClassListByTeacherId" parameterType="com.xjrsoft.module.schedule.dto.ClassOptionDto" resultType="com.xjrsoft.module.schedule.vo.ClassOptionVo">
         SELECT id,name FROM base_class WHERE delete_mark = 0 AND id IN (
             SELECT DISTINCT class_id FROM course_table WHERE teacher_id like concat('%', #{dto.userId},'%')