dzx 9 месяцев назад
Родитель
Сommit
0d51fec4f5

+ 1 - 6
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -21,11 +21,9 @@ import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
 import com.xjrsoft.module.banding.mapper.BandingTaskClassMapper;
 import com.xjrsoft.module.banding.mapper.BandingTaskClassStudentMapper;
-import com.xjrsoft.module.banding.mapper.BandingTaskMapper;
 import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseSemester;
-import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.organization.entity.User;
@@ -39,7 +37,6 @@ import com.xjrsoft.module.student.entity.BaseStudentFamily;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.entity.StudentReportPlan;
 import com.xjrsoft.module.student.entity.StudentReportRecord;
-import com.xjrsoft.module.student.mapper.BaseClassMajorSetMapper;
 import com.xjrsoft.module.student.mapper.StudentReportRecordMapper;
 import com.xjrsoft.module.student.service.IBaseNewStudentService;
 import com.xjrsoft.module.student.service.IBaseStudentFamilyService;
@@ -71,21 +68,18 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<BandingTaskClassStudentMapper, BandingTaskClassStudent> implements IBandingTaskClassStudentService {
     private final BandingTaskClassMapper taskClassMapper;
-    private final BandingTaskMapper bandingTaskMapper;
     private final IStudentReportPlanService reportPlanService;
     private final IBaseSemesterService semesterService;
     private final IBaseNewStudentService newStudentService;
     private final StudentReportRecordMapper reportRecordMapper;
 
     private final IBaseClassService classService;
-    private final BaseClassMajorSetMapper classMajorSetMapper;
     private final CommonPropertiesConfig propertiesConfig;
     private final IUserService userService;
     private final IUserRoleRelationService roleRelationService;
     private final IBaseStudentSchoolRollService schoolRollService;
     private final IBaseStudentService studentService;
     private final IBaseStudentFamilyService familyService;
-    private final BaseMajorSetMapper majorSetMapper;
     private final RedisUtil redisUtil;
 
     @Override
@@ -159,6 +153,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
 
             for (StudentReportPlan plan : planList) {
                 for (Long newStudentId : dto.getNewStudentIds()) {
+                    reportRecordMapper.deleteRecordByUserIdAndPlanId(newStudentId, plan.getId());
                     StudentReportRecord record = new StudentReportRecord();
                     record.setCreateDate(new Date());
                     record.setCreateUserId(StpUtil.getLoginIdAsLong());

+ 3 - 3
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -144,8 +144,8 @@ public class DataUtil {
         Set<String> classTypeSet = new HashSet<>();
         for (String status : stduyStatus) {
             for (Map<String, Object> dict : classTypeList) {
-                if (tableData != null && tableData.containsKey(dict.get("code").toString())) {
-                    classTypeSet.add(dict.get("code").toString());
+                if (tableData != null && tableData.containsKey(dict.get("code").toString() + "-" + status)) {
+                    classTypeSet.add(dict.get("code").toString() + "-" + status);
                     continue;
                 }
                 JsonObject paramJson = new JsonObject();
@@ -180,7 +180,7 @@ public class DataUtil {
         for (String classType : classTypeSet) {
             for (Map<String, Object> baseGrade : gradeList) {
                 gradeNameMap.put(Long.parseLong(baseGrade.get("id").toString()), baseGrade.get("name").toString().replaceAll("级", ""));
-                if (tableData != null && tableData.containsKey(baseGrade.get("id").toString())) {
+                if (tableData != null && tableData.containsKey(baseGrade.get("name").toString().replaceAll("级", "") + "-" + classType)) {
                     continue;
                 }
                 JsonObject paramJson = new JsonObject();

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

@@ -53,7 +53,7 @@ public interface BaseStudentSchoolRollMapper extends MPJBaseMapper<BaseStudentSc
     Boolean updateStudentClass1(@Param("classId") Long classId, @Param("majorSetId") Long majorSetId, @Param("userId") Long userId);
 
     @Update("UPDATE base_student_school_roll SET class_id = #{classId} where user_id = #{userId}")
-    Boolean updateStudentClass(@Param("classId") Long classId, @Param("userId") Long userId);
+    Boolean updatestudentclassByClassIdAndUserId(@Param("classId") Long classId, @Param("userId") Long userId);
 
     @Update("UPDATE base_student_school_roll SET class_id = #{classId},major_set_id=#{majorSetId},grade_id=#{gradeId} where user_id = #{userId}")
     Boolean updateStudentClass(@Param("classId") Long classId, @Param("gradeId") Long gradeId, @Param("majorSetId") Long majorSetId, @Param("userId") Long userId);

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

@@ -12,6 +12,7 @@ import com.xjrsoft.module.student.vo.StudentReportRecordStatisticsListVo;
 import com.xjrsoft.module.student.vo.StudentReportRecordStatisticsVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -41,4 +42,7 @@ public interface StudentReportRecordMapper extends MPJBaseMapper<StudentReportRe
 
     List<StudentReportRecordPlanPageVo> getTryReadingList(@Param("dto") StudentTryReadingReportPageDto dto);
 
+    @Update("update student_report_record set delete_mark = 1 where user_id = #{userId} and student_report_plan_id = #{planId}")
+    Boolean deleteRecordByUserIdAndPlanId(@Param("userId") Long userId, @Param("planId") Long planId);
+
 }

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

@@ -269,7 +269,7 @@ public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStu
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateStudentClass(Long classId, Long userId) {
-        return baseStudentSchoolRollMapper.updateStudentClass(classId, userId);
+        return baseStudentSchoolRollMapper.updatestudentclassByClassIdAndUserId(classId, userId);
     }
 
     @Override

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

@@ -1055,8 +1055,7 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                 .selectAs(BaseMajorSet::getMajorId, BaseClassMajorSetVo::getMajorId)
                 .selectAs(BaseClass::getName, BaseClassMajorSetVo::getClassName)
                 .selectAs(BaseClass::getGradeId, BaseClassMajorSetVo::getGradeId)
-                .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClass::getId)
-                .leftJoin(BaseMajorSet.class, BaseMajorSet::getId, BaseClassMajorSet::getMajorSetId)
+                .leftJoin(BaseMajorSet.class, BaseMajorSet::getId, BaseClass::getMajorSetId)
                 .eq(dto.getIsGraduate() != null, BaseClass::getIsGraduate, dto.getIsGraduate())
                 .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(BaseClass::getEnabledMark, EnabledMark.ENABLED.getCode())

+ 8 - 3
src/main/java/com/xjrsoft/module/student/service/impl/StudentReportRecordServiceImpl.java

@@ -389,8 +389,11 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
             }
             //根据身份证号查询这个学生是否存在
             User user = userService.getOne(
-                    new QueryWrapper<User>().lambda()
-                            .eq(User::getCredentialNumber, student.getCredentialNumber())
+                new MPJLambdaWrapper<User>()
+                    .disableLogicDel()
+                    .select(User::getId)
+                    .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
+                    .eq(User::getCredentialNumber, student.getCredentialNumber())
             );
             if(user != null){
                 //学生已存在,则修改班级信息
@@ -476,7 +479,9 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
                     new QueryWrapper<User>().lambda()
                             .eq(User::getCredentialNumber, student.getCredentialNumber())
             );
-            rollService.disableStudent(user.getId());
+            if(user != null){
+                rollService.disableStudent(user.getId());
+            }
         }
 
         return true;

+ 123 - 0
src/test/java/com/xjrsoft/module/job/HikvisionBaseDataTaskTest2.java

@@ -0,0 +1,123 @@
+package com.xjrsoft.module.job;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.xjrsoft.XjrSoftApplication;
+import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
+import com.xjrsoft.common.utils.SqlRunnerAdapterUtil;
+import com.xjrsoft.module.hikvision.entity.HikvisionData;
+import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.DataUtil;
+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.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author dzx
+ * @date 2025/5/7
+ */
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = XjrSoftApplication.class)
+class HikvisionBaseDataTaskTest2 {
+
+    @Autowired
+    private HikvisionDataMapper hikvisionDataMapper;
+
+    @Test
+    void execute() {
+        RefreshConnectionPool();
+    }
+
+    public void RefreshConnectionPool() {
+        String active = SpringUtil.getActiveProfile();
+        if (!"prod".equals(active)) {
+            return;
+        }
+        try {
+            String sql = "SELECT distinct table_name FROM hikvision_data WHERE 1 = 1";
+            List<Map<String, Object>> maps = SqlRunnerAdapter.db().selectList(sql);
+            Set<String> tables = new HashSet<>();
+            for (Map<String, Object> map : maps) {
+                String[] strings = SqlRunnerAdapterUtil.convertMapToStringArray(map);
+                tables.add(strings[0]);
+            }
+            sql = "SELECT * FROM hikvision_data WHERE 0 = 0";
+            List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+            Map<String, Map<String, String>> dataMap = new HashMap<>();
+            for (String table : tables) {
+                Map<String, String> tableData = new HashMap<>();
+                for (Map<String, Object> hikvision : list) {
+
+                    if (!table.equals(hikvision.get("table_name").toString())) {
+                        continue;
+                    }
+                    tableData.put(hikvision.get("source_id").toString(), hikvision.get("hikvision_id").toString());
+                }
+                dataMap.put(table, tableData);
+            }
+            DataUtil dataUtil = new DataUtil();
+            //查询根机构
+            //JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
+            //推送组织机构
+            String tableName = "xjr_department";
+//            Map<String, String> department = new HashMap<>();
+//            try {
+//                department = dataUtil.insertDepartment(tableName, dataMap.get(tableName));
+//            } catch (Exception e) {
+//                System.out.println(e);
+//            }
+//            if (department.isEmpty() && dataMap.get(tableName) != null) {
+//                department = dataMap.get(tableName);
+//            }
+//
+//
+//            //推送教职工
+//            tableName = "base_teacher";
+//            try {
+//                dataUtil.insertTeacher(tableName, dataMap.get(tableName), department);
+//            } catch (Exception e) {
+//                System.out.println(e);
+//            }
+//
+//            //推送车辆
+//            String carTableName = "car_message_apply";
+//            Map<String, String> baseCar = dataMap.get(carTableName);
+//            try {
+//                dataUtil.insertCar(carTableName, baseCar, hikvisionDataMapper);
+//            } catch (Exception e) {
+//                System.out.println(e);
+//            }
+
+
+            tableName = "base_class";
+            Map<String, String> baseClass = dataMap.get(tableName);
+            try {
+                dataUtil.insertClass(tableName, baseClass);
+            } catch (Exception e) {
+                System.out.println(e);
+            }
+
+
+            tableName = "base_student";
+            List<HikvisionData> studentList = hikvisionDataMapper.selectList(
+                    new QueryWrapper<HikvisionData>().lambda().eq(HikvisionData::getTableName, tableName)
+            );
+            Map<String, String> baseStudent = dataMap.get(tableName);
+            dataUtil.insertStudentOne(tableName, baseStudent, studentList);
+
+        } catch (Exception e) {
+        }
+    }
+
+}