Browse Source

新生报到模块

dzx 6 months ago
parent
commit
3fbc8814fc

+ 19 - 5
src/main/java/com/xjrsoft/module/databoard/controller/DataboardController.java

@@ -12,6 +12,7 @@ import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
+import com.xjrsoft.module.databoard.dto.StatisticsDetailDto;
 import com.xjrsoft.module.databoard.dto.StatisticsDto;
 import com.xjrsoft.module.databoard.vo.CourseStatisticsVo;
 import com.xjrsoft.module.databoard.vo.HealthStatisticsVo;
@@ -45,6 +46,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
@@ -147,10 +149,11 @@ public class DataboardController {
     @GetMapping(value = "/course-statistics")
     @ApiOperation(value="课表统计")
     @SaCheckPermission("databoard:detail")
-    public RT<CourseStatisticsVo> courseStatistics(@Valid StatisticsDto dto){
+    public RT<CourseStatisticsVo> courseStatistics(@Valid StatisticsDetailDto dto){
         List<CourseTable> list = courseTableService.list(
                 new QueryWrapper<CourseTable>().lambda()
-                        .eq(CourseTable::getScheduleDate, new Date())
+                        .eq((dto.getStartDate() == null && dto.getEndDate() == null), CourseTable::getScheduleDate, new Date())
+                        .between((dto.getStartDate() != null && dto.getEndDate() != null), CourseTable::getScheduleDate, dto.getStartDate(), dto.getEndDate())
         );
         CourseStatisticsVo result = new CourseStatisticsVo();
         result.setAllCount(list.size());
@@ -164,12 +167,22 @@ public class DataboardController {
         }
         result.setTeacherCount(teacherCount);
         result.setNoTeacherCount(noTeacherCount);
-
-        String sql = "SELECT * FROM wf_course_adjust WHERE STATUS = 1 AND exchange_date = NOW() and adjust_type = 'course_adjust'";
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String sql = "SELECT * FROM wf_course_adjust WHERE STATUS = 1 and adjust_type = 'course_adjust'";
+        if(dto.getStartDate() != null && dto.getEndDate() != null){
+            sql += " AND exchange_date between '" + dto.getStartDate().format(formatter) + "' and '" + dto.getEndDate().format(formatter) + "'";
+        }else{
+            sql += " AND exchange_date = NOW()";
+        }
         long adjustCount = SqlRunnerAdapter.db().selectCount(sql);
         result.setAdjustCount(Integer.parseInt(adjustCount + ""));
 
-        sql = "SELECT * FROM wf_course_adjust WHERE STATUS = 1 AND exchange_date = NOW() and adjust_type = 'course_exchange'";
+        sql = "SELECT * FROM wf_course_adjust WHERE STATUS = 1 and adjust_type = 'course_exchange'";
+        if(dto.getStartDate() != null && dto.getEndDate() != null){
+            sql += " AND exchange_date between '" + dto.getStartDate().format(formatter) + "' and '" + dto.getEndDate().format(formatter) + "'";
+        }else{
+            sql += " AND exchange_date = NOW()";
+        }
         long exchangeCount = SqlRunnerAdapter.db().selectCount(sql);
         result.setReplaceCount(Integer.parseInt(exchangeCount + ""));
 
@@ -332,4 +345,5 @@ public class DataboardController {
         return RT.ok(result);
     }
 
+
 }

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

@@ -3,6 +3,7 @@ package com.xjrsoft.module.databoard.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
@@ -11,6 +12,7 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.databoard.dto.StatisticsDetailDto;
+import com.xjrsoft.module.databoard.vo.CourseStatisticsDetailVo;
 import com.xjrsoft.module.databoard.vo.DistributionVo;
 import com.xjrsoft.module.databoard.vo.DurationVo;
 import com.xjrsoft.module.databoard.vo.HealthItemCountVo;
@@ -53,6 +55,7 @@ import java.text.SimpleDateFormat;
 import java.time.Duration;
 import java.time.LocalDate;
 import java.time.Period;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -551,7 +554,10 @@ public class DatadetailController {
     @SaCheckPermission("datadetail:detail")
     public RT<SubscriptionStatisticsDetailVo> subscriptionStatistics(@Valid StatisticsDetailDto dto) {
         SubscriptionStatisticsDetailVo result = new SubscriptionStatisticsDetailVo();
-        List<WfSubscription> list = subscriptionService.list();
+        List<WfSubscription> list = subscriptionService.list(
+                new QueryWrapper<WfSubscription>().lambda()
+                        .between((dto.getStartDate() != null && dto.getEndDate() != null), WfSubscription::getShenQingRiQi4752, dto.getStartDate(), dto.getEndDate())
+        );
         double totalAmount = list.stream().filter(x -> x.getTotalAmount() != null).mapToDouble(WfSubscription::getTotalAmount).sum();
         result.setTotalAmount(totalAmount);
 
@@ -565,7 +571,12 @@ public class DatadetailController {
                 " INNER JOIN wf_subscription t2 ON t1.parent_id = t2.id" +
                 " LEFT JOIN xjr_dictionary_detail t3 ON t1.item_type = t3.code" +
                 " AND t3.item_id = 1752140413593518081" +
-                " WHERE t2.status = 1 GROUP BY t3.name";
+                " WHERE t2.status = 1";
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if(dto.getStartDate() != null && dto.getEndDate() != null){
+            sql += " and t2.shen_qing_ri_qi4752 between '" + dto.getStartDate().format(formatter) + "' and '" + dto.getEndDate().format(formatter) + "'";
+        }
+        sql += " GROUP BY t3.name";
         List<Map<String, Object>> datalist = SqlRunnerAdapter.db().selectList(sql);
         List<ItemCountVo> categoryCountList = new ArrayList<>();
         List<ItemDoubleVo> categoryAmountList = new ArrayList<>();
@@ -590,7 +601,11 @@ public class DatadetailController {
         sql = "SELECT IFNULL(t3.name, '未填写') AS item,COUNT(t1.id) AS a_count,SUM(t1.amount) as a_sum FROM wf_subscription_list t1" +
             " INNER JOIN wf_subscription t2 ON t1.parent_id = t2.id" +
             " LEFT JOIN xjr_department t3 ON t2.application_department = t3.id" +
-            " WHERE t2.status = 1 GROUP BY t3.name";
+            " WHERE t2.status = 1";
+        if(dto.getStartDate() != null && dto.getEndDate() != null){
+            sql += " and t2.shen_qing_ri_qi4752 between '" + dto.getStartDate().format(formatter) + "' and '" + dto.getEndDate().format(formatter) + "'";
+        }
+        sql += " GROUP BY t3.name";
         datalist = SqlRunnerAdapter.db().selectList(sql);
         List<ItemCountAmountVo> deptList = new ArrayList<>();
         for (Map<String, Object> objectMap : datalist) {
@@ -606,4 +621,12 @@ public class DatadetailController {
         return RT.ok(result);
     }
 
+    @GetMapping(value = "/course-statistics")
+    @ApiOperation(value="课表详情数据统计")
+    @SaCheckPermission("datadetail:detail")
+    public RT<CourseStatisticsDetailVo> courseStatistics(@Valid StatisticsDetailDto dto) {
+        CourseStatisticsDetailVo result = new CourseStatisticsDetailVo();
+        return RT.ok(result);
+    }
+
 }

+ 39 - 0
src/main/java/com/xjrsoft/module/databoard/vo/CourseStatisticsDetailVo.java

@@ -0,0 +1,39 @@
+package com.xjrsoft.module.databoard.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 课表统计数据
+* @Author dzx
+* @Date: 2024年8月2日
+* @Version 1.0
+*/
+@Data
+public class CourseStatisticsDetailVo {
+
+
+    @ApiModelProperty("总金额")
+    private Double totalAmount;
+
+    @ApiModelProperty("申购类型次数对比数据")
+    private List<ItemCountVo> categoryCountList;
+
+    @ApiModelProperty("申购类型金额对比数据")
+    private List<ItemDoubleVo> categoryAmountList;
+
+    @ApiModelProperty("申购次数")
+    private Integer allCount;
+
+    @ApiModelProperty("通过次数")
+    private Integer adoptCount;
+
+    @ApiModelProperty("待审次数")
+    private Integer pendingCount;
+
+    @ApiModelProperty("部门申购统计数据")
+    private List<ItemCountAmountVo> deptList;
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/student/controller/StudentReportRecordController.java

@@ -138,7 +138,7 @@ public class StudentReportRecordController {
     @ApiOperation(value = "删除学生报到记录表")
     @SaCheckPermission("studentreportrecord:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(studentReportRecordService.removeBatchByIds(ids));
+        return RT.ok(studentReportRecordService.removeByUserId(ids));
 
     }
 

+ 1 - 0
src/main/java/com/xjrsoft/module/student/mapper/StudentReportRecordMapper.java

@@ -22,4 +22,5 @@ public interface StudentReportRecordMapper extends MPJBaseMapper<StudentReportRe
     StudentReportRecordStatisticsVo getClassStatistics(@Param("dto") StudentReportRecordStatisticsDto dto);
 
     List<StudentReportRecordStatisticsListVo> getStatisticsDataList(@Param("dto") StudentReportRecordStatisticsDto dto);
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/service/IStudentReportRecordService.java

@@ -22,4 +22,7 @@ public interface IStudentReportRecordService extends MPJBaseService<StudentRepor
 
 
     List<StudentReportRecordStatisticsListVo> getStatisticsDataList(StudentReportRecordStatisticsDto dto);
+
+
+    Boolean removeByUserId(List<Long> ids);
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/student/service/impl/StudentReportRecordServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.student.dto.StudentReportRecordStatisticsDto;
 import com.xjrsoft.module.student.entity.StudentReportRecord;
@@ -30,4 +31,12 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
     public List<StudentReportRecordStatisticsListVo> getStatisticsDataList(StudentReportRecordStatisticsDto dto) {
         return this.baseMapper.getStatisticsDataList(dto);
     }
+
+    @Override
+    public Boolean removeByUserId(List<Long> ids) {
+        this.baseMapper.delete(
+                new QueryWrapper<StudentReportRecord>().lambda().in(StudentReportRecord::getUserId, ids)
+        );
+        return true;
+    }
 }

+ 1 - 1
src/main/resources/application.yml

@@ -5,7 +5,7 @@ server:
 spring:
   # 环 io境 dev|pre|prod
   profiles:
-    active: pre
+    active: dev
   # jackson时间格式化
   jackson:
     time-zone: GMT+8

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

@@ -13,8 +13,8 @@
         LEFT JOIN enrollment_plan t4 ON t1.enrollment_plan_id = t4.id
         LEFT JOIN base_major_set t7 ON t1.first_ambition = t7.id
         LEFT JOIN base_major_set t8 ON t1.second_ambition = t8.id
-        LEFT JOIN xjr_user t9 ON t1.credential_number = t9.credential_number
-        LEFT JOIN base_student_school_roll t10 ON t9.id = t10.user_id
+        LEFT JOIN xjr_user t9 ON t1.credential_number = t9.credential_number AND t9.delete_mark = 0
+        LEFT JOIN base_student_school_roll t10 ON t9.id = t10.user_id AND t10.delete_mark = 0
         LEFT JOIN base_class t11 ON t10.class_id = t11.id
         LEFT JOIN xjr_user t12 ON t11.teacher_id = t12.id
         WHERE t1.delete_mark = 0