Bläddra i källkod

Merge branch 'pre'

dzx 1 år sedan
förälder
incheckning
e0492eff82

+ 3 - 1
src/main/java/com/xjrsoft/module/attendance/controller/TeacherStatisticsController.java

@@ -82,7 +82,7 @@ public class TeacherStatisticsController {
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String today = LocalDate.now().format(dtf);
         Page<TeacherStatisticsPageVo> voIPage2 = attendanceRecordService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        if(!today.equals(dto.getDate()) && voIPage2.getRecords().isEmpty()){
+        if(!today.equals(dto.getDate()) && !voIPage2.getRecords().isEmpty()){
             PageOutput<TeacherStatisticsPageVo> pageOutput = ConventPage.getPageOutput(voIPage2, TeacherStatisticsPageVo.class);
             return RT.ok(pageOutput);
         }else{
@@ -190,6 +190,8 @@ public class TeacherStatisticsController {
                     outInDto.setEndTime(endTime);
                     outInDto.setStatus(OutInStatusEnum.enter.getCode());
                     outInDto.setUserId(record.getUserId());
+                    outInDto.setTimePeriod(dto.getTimePeriod());
+                    outInDto.setAmEndTime(amEndTime);
                     List<TeacherOutInRecord> outInRecords = teacherOutInRecordService.getListByParam(outInDto);
                     //查询该教师是否通过车辆进入
                     List<CarOutInRecord> list = carOutInRecordService.list(

+ 7 - 3
src/main/java/com/xjrsoft/module/databoard/controller/DataboardController.java

@@ -49,6 +49,8 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -144,15 +146,17 @@ public class DataboardController {
         );
         CourseStatisticsVo result = new CourseStatisticsVo();
         result.setAllCount(list.size());
-        int teacherCount = 0, noTeacherCount = 0;
+        Set<String> teacherCountSet = new HashSet<>();
+        int noTeacherCount = 0;
         for (CourseTable courseTable : list) {
             if(courseTable.getTeacherId() != null && !"0".equals(courseTable.getTeacherId())){
-                teacherCount ++;
+                String[] split = courseTable.getTeacherId().split(",");
+                teacherCountSet.addAll(Arrays.asList(split));
             }else{
                 noTeacherCount ++;
             }
         }
-        result.setTeacherCount(teacherCount);
+        result.setTeacherCount(teacherCountSet.size());
         result.setNoTeacherCount(noTeacherCount);
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String sql = "SELECT t1.* FROM wf_course_adjust t1" +

+ 1 - 1
src/main/java/com/xjrsoft/module/job/JianyuekbScheduleTask.java

@@ -354,7 +354,7 @@ public class JianyuekbScheduleTask {
             //查询顶课老师在本条申请的课程中的节次是否包含课
             Integer substituteTeacherCourseCount = courseTableService.getSubstituteTeacherCourseCountByParams(new ClassTeacherDto() {{
                 setWfCourseAdjustId(courseAdjust.getId());
-                setTeacherId(courseAdjust.getExchangeTeacherId());
+                setTeacherId(Long.parseLong(courseAdjust.getExchangeTeacherId()));
             }});
             if(courseList.size() != courseCount || substituteTeacherCourseCount > 0){
                 //表明课程变化了,需要重新申请,需要将原来的申请作废并进行微信消息通知

+ 4 - 4
src/main/java/com/xjrsoft/module/ledger/controller/LedgerStatisticsController.java

@@ -236,7 +236,7 @@ public class LedgerStatisticsController {
                 ")";
         }
         if(!userIdList.isEmpty()){
-            sql = " AND t.teacher_user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
+            sql += " AND t4.teacher_user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
         }
         sql += " GROUP BY t4.teacher_user_id";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
@@ -315,7 +315,7 @@ public class LedgerStatisticsController {
                     ")";
         }
         if(!userIdList.isEmpty()){
-            sql = " AND t.teacher_user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
+            sql += " AND t4.teacher_user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
         }
         sql += " GROUP BY t4.teacher_user_id";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
@@ -398,7 +398,7 @@ public class LedgerStatisticsController {
             sql += " AND t1.schedule_date BETWEEN '" + startTime + "' and '" + endTime + "'";
         }
         if(!userIdList.isEmpty()){
-            sql = " AND t1.user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
+            sql += " AND t1.user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
         }
         sql += " GROUP BY t1.user_id";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
@@ -469,7 +469,7 @@ public class LedgerStatisticsController {
             sql += " AND t1.schedule_date BETWEEN '" + startTime + "' and '" + endTime + "'";
         }
         if(!userIdList.isEmpty()){
-            sql = " AND t1.user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
+            sql += " AND t1.user_id in (" + userIdList.toString().replace("[", "").replace("]", "") + ")";
         }
         sql += " GROUP BY t1.user_id";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);

+ 1 - 1
src/main/java/com/xjrsoft/module/ledger/vo/LedgerStatisticsListenExcelVo.java

@@ -12,7 +12,7 @@ import lombok.Data;
 * @Version 1.0
 */
 @Data
-public class LedgerStatisticsListenExcelVo extends LedgerStatisticsPageVo{
+public class LedgerStatisticsListenExcelVo{
 
     @ExcelProperty("序号")
     @ApiModelProperty("序号")

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/service/impl/WfSubscriptionServiceImpl.java

@@ -156,7 +156,7 @@ public class WfSubscriptionServiceImpl extends MPJBaseServiceImpl<WfSubscription
             .eq(WorkflowFormRelation::getFormKeyValue, id)
         );
         info.setWorkflowRecordList(BeanUtil.copyToList(recordList, WorkflowRecordVo.class));
-        List<WorkflowFormRelation> relations = workflowFormRelationMapper.selectList(new QueryWrapper<WorkflowFormRelation>().lambda().eq(WorkflowFormRelation::getFormKeyValue, id));
+        List<WorkflowFormRelation> relations = workflowFormRelationMapper.selectList(new QueryWrapper<WorkflowFormRelation>().lambda().eq(WorkflowFormRelation::getFormKeyValue, id.toString()));
 
         if(!relations.isEmpty()){
             info.setProcessId(relations.get(0).getProcessId());

+ 1 - 1
src/main/java/com/xjrsoft/module/schedule/entity/WfCourseAdjust.java

@@ -72,7 +72,7 @@ public class WfCourseAdjust implements Serializable {
     private String exchangeDate;
 
     @ApiModelProperty("替班教师id(xjr_user)")
-    private Long exchangeTeacherId;
+    private String exchangeTeacherId;
 
     @ApiModelProperty("对调课程id(base_course_subject)")
     private String exchangeCourseId;

+ 4 - 4
src/main/java/com/xjrsoft/module/teacher/vo/TeacherAwardDetailExcelVo.java

@@ -32,12 +32,12 @@ public class TeacherAwardDetailExcelVo {
     @ApiModelProperty("作品名称")
     private String paperName;
 
-    @ExcelProperty("媒体名称")
-    @ApiModelProperty("媒体名称")
+    @ExcelProperty("刊文名称")
+    @ApiModelProperty("刊文名称")
     private String journalName;
 
-    @ExcelProperty("媒体类型")
-    @ApiModelProperty("媒体类型")
+    @ExcelProperty("刊文类型")
+    @ApiModelProperty("刊文类型")
     private String mediaType;
 
     @ExcelProperty("国内统一刊号")

+ 3 - 1
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -64,6 +64,7 @@ import com.xjrsoft.module.workflow.vo.*;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import me.zhyd.oauth.log.Log;
 import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
 import org.camunda.bpm.engine.HistoryService;
@@ -2237,9 +2238,10 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
         } catch (Exception e) {
             if (e.getMessage().contains("sequence flow")) {
+                Log.error(e.getMessage(), e);
                 throw new MyException("流转条件错误,请检查流转条件设置!");
             } else {
-
+                Log.error(e.getMessage(), e);
                 throw new MyException("表单提交错误, 请联系系统管理员!");
             }
         }

+ 53 - 0
src/test/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImplTest.java

@@ -0,0 +1,53 @@
+package com.xjrsoft.module.courseTable.service.impl;
+
+import com.xjrsoft.XjrSoftApplication;
+import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
+import com.xjrsoft.module.courseTable.service.ICourseTableService;
+import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
+import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author dzx
+ * @date 2024/12/9
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = XjrSoftApplication.class)
+class CourseTableServiceImplTest {
+
+    @Autowired
+    private ICourseTableService courseTableService;
+
+    @Autowired
+    private IWfCourseAdjustService adjustService;
+
+    @Test
+    public void test(){
+        String sql = "SELECT t1.* FROM wf_course_adjust t1\n" +
+                "INNER JOIN xjr_workflow_form_relation t2 ON t1.id = t2.form_key_value\n" +
+                "WHERE t2.current_state = 'COMPLETED'\n" +
+                "AND t1.delete_mark = 0 AND t1.enabled_mark = 1\n" +
+                "AND (t1.adjust_date > '2024-12-09' OR t1.exchange_date > '2024-12-09')\n" +
+                "AND (\n" +
+                "SELECT COUNT(*) FROM course_table a1\n" +
+                "INNER JOIN course_table_bak a2 ON a1.key_info = a2.key_info\n" +
+                "WHERE a2.wf_course_adjust_id = t1.id AND a1.adjust_type IS NULL\n" +
+                ") > 0";
+        List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+        for (Map<String, Object> objectMap : list) {
+            long id = Long.parseLong(objectMap.get("id").toString());
+
+            WfCourseAdjust courseAdjust = adjustService.getById(id);
+            courseTableService.adjustCourse(courseAdjust);
+        }
+    }
+}

+ 1 - 1
src/test/java/com/xjrsoft/module/job/AttendanceRecordTaskTest.java

@@ -97,7 +97,7 @@ class AttendanceRecordTaskTest {
                         .select(User::getId)
                         .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
                         .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
-                        .in(User::getName, nameList)
+                        //.in(User::getName, nameList)
         );
         List<Long> userIds = teacherList.stream().map(User::getId).collect(Collectors.toList());
         Map<Long, AttendanceRuleDetailsUserVo> teacherTodyRuleByUserId = ruleCategoryService.getTeacherTodyRuleByUserId(userIds);

+ 1 - 1
src/test/java/com/xjrsoft/module/job/JianyuekbScheduleTaskTest2.java

@@ -353,7 +353,7 @@ class JianyuekbScheduleTaskTest2 {
             }
             Integer substituteTeacherCourseCount = courseTableService.getSubstituteTeacherCourseCountByParams(new ClassTeacherDto() {{
                 setWfCourseAdjustId(courseAdjust.getId());
-                setTeacherId(courseAdjust.getExchangeTeacherId());
+                setTeacherId(Long.parseLong(courseAdjust.getExchangeTeacherId()));
             }});
             if(courseAdjust.getId() == 1865923439122493440L){
                 System.out.println(courseAdjust.getId());

+ 82 - 0
src/test/java/com/xjrsoft/module/student/service/impl/BaseStudentGraduateServiceImplTest.java

@@ -0,0 +1,82 @@
+package com.xjrsoft.module.student.service.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.XjrSoftApplication;
+import com.xjrsoft.common.enums.ArchivesStatusEnum;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.student.dto.AddBaseStudentGraduateDto;
+import com.xjrsoft.module.student.entity.BaseStudentGraduate;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.service.IBaseStudentGraduateService;
+import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Date;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author dzx
+ * @date 2024/12/10
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = XjrSoftApplication.class)
+class BaseStudentGraduateServiceImplTest {
+
+    @Autowired
+    private IBaseStudentSchoolRollService rollService;
+
+    @Autowired
+    private IBaseStudentGraduateService baseStudentGraduateService;
+    @Test
+    void test(){
+        Long gradeId = 345678345680L;
+        List<BaseStudentSchoolRoll> schoolRollList = rollService.list(
+                new MPJLambdaWrapper<BaseStudentSchoolRoll>()
+                        .select(BaseStudentSchoolRoll::getId)
+                        .select(BaseStudentSchoolRoll.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentSchoolRoll.class).contains(x.getProperty()))
+                        .innerJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
+                        .innerJoin(User.class, User::getId, BaseStudentSchoolRoll::getUserId)
+                        .eq(BaseStudentSchoolRoll::getArchivesStatus, ArchivesStatusEnum.FB2901.getCode())
+                        .eq(BaseClass::getGradeId, gradeId)
+        );
+
+        for (BaseStudentSchoolRoll schoolRoll : schoolRollList) {
+            AddBaseStudentGraduateDto dto = new AddBaseStudentGraduateDto(){{
+                setUserId(schoolRoll.getUserId());
+                setStatus(0);
+            }};
+            BaseStudentGraduate baseStudentGraduate = BeanUtil.toBean(dto, BaseStudentGraduate.class);
+            baseStudentGraduate.setCreateUserId(1000000000000000000L);
+            baseStudentGraduate.setCreateDate(new Date());
+            baseStudentGraduate.setAppendixId(dto.getFolderId());
+            QueryWrapper<BaseStudentGraduate> queryWrapperSortcode = new QueryWrapper<>();
+            queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
+            BaseStudentGraduate t = baseStudentGraduateService.getOne(queryWrapperSortcode);
+            baseStudentGraduate.setSortCode(t.getSortCode() + 1);
+            //修改学籍状态
+            LambdaQueryWrapper<BaseStudentSchoolRoll> baseStudentSchoolRollLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            baseStudentSchoolRollLambdaQueryWrapper
+                    .eq(BaseStudentSchoolRoll::getUserId, dto.getUserId());
+            rollService.update(new BaseStudentSchoolRoll(){{
+                setArchivesStatus(ArchivesStatusEnum.FB2907.getCode());
+            }}, baseStudentSchoolRollLambdaQueryWrapper);
+
+            //保存毕业信息
+            baseStudentGraduateService.save(baseStudentGraduate);
+        }
+
+    }
+}