Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 6 mēneši atpakaļ
vecāks
revīzija
3979eec23a

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

@@ -11,6 +11,7 @@ import com.xjrsoft.common.enums.ArchivesStatusEnum;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.enums.RoleEnum;
+import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.utils.LocalDateUtil;
 import com.xjrsoft.common.utils.RedisUtil;
 import com.xjrsoft.common.utils.VoToColumnUtil;
@@ -116,6 +117,11 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
                         .in(BaseNewStudent::getId, dto.getNewStudentIds())
         );
 
+        List<BaseNewStudent> notPaymnyList = list.stream().filter(x -> "未交费".equals(x.getPaymnystate())).collect(Collectors.toList());
+        if(!notPaymnyList.isEmpty() && dto.getIsHandle() == 1){
+            throw new MyException("选择的学生中存在未交费情况,无法手动分班");
+        }
+
         List<BandingTaskClassStudent> dataList = new ArrayList<>();
         long createUserId = StpUtil.getLoginIdAsLong();
 

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

@@ -117,6 +117,8 @@ public class BaseNewStudentTask {
         );
         Map<String, Long> majorSetNameMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getName, BaseMajorSet::getId));
 
+        Set<String> insCredentialNumber = new HashSet<>();
+
         //循环攀宝的数据,准备更新到新生表中
         List<BaseNewStudent> updateList = new ArrayList<>();
         List<BaseNewStudent> insertList = new ArrayList<>();
@@ -160,7 +162,9 @@ public class BaseNewStudentTask {
                 updateList.add(existsNewStudent);
                 continue;
             }
-
+            if(insCredentialNumber.contains(feeobjupdate.getPersonalid())){
+                continue;
+            }
             insertList.add(
                     new BaseNewStudent() {{
                         setCredentialNumber(feeobjupdate.getPersonalid());
@@ -198,6 +202,7 @@ public class BaseNewStudentTask {
                         setIsCanBanding(1);
                     }}
             );
+            insCredentialNumber.add(feeobjupdate.getPersonalid());
         }
 
         if (!updateList.isEmpty()) {

+ 11 - 16
src/main/java/com/xjrsoft/module/personnel/service/impl/CarMessageApplyServiceImpl.java

@@ -4,16 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.module.hikvision.entity.HikvisionData;
 import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
 import com.xjrsoft.module.hikvision.util.ApiUtil;
 import com.xjrsoft.module.personnel.dto.AddCarMessageApplyDto;
-import com.xjrsoft.module.personnel.dto.UpdateCarMessageApplyDto;
 import com.xjrsoft.module.personnel.entity.CarMessageApply;
 import com.xjrsoft.module.personnel.mapper.CarMessageApplyMapper;
 import com.xjrsoft.module.personnel.service.ICarMessageApplyService;
@@ -21,8 +18,6 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.time.LocalDateTime;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -59,17 +54,17 @@ public class CarMessageApplyServiceImpl extends MPJBaseServiceImpl<CarMessageApp
         String apiUrl = "/api/resource/v1/vehicle/batch/delete";
         String result = apiUtil.doPost(apiUrl, paramJson.toString(), null);
 
-        JsonParser parser = new JsonParser();
-        JsonObject resultJson = parser.parse(result).getAsJsonObject();
-        if (resultJson.get("code").getAsInt() == 0 && !resultJson.get("data").isJsonNull()) {
-            JsonArray data = resultJson.get("data").getAsJsonArray();
-            for (JsonElement datum : data) {
-                JsonObject object = datum.getAsJsonObject();
-                idsMap.remove(object.get("vehicleId").getAsString());
-            }
-            Collection<String> values = idsMap.values();
-//            this.removeBatchByIds(values); 远程没有数据
-        }
+//        JsonParser parser = new JsonParser();
+//        JsonObject resultJson = parser.parse(result).getAsJsonObject();
+//        if ("0".equals(resultJson.get("code").getAsString()) && !resultJson.get("data").isJsonNull()) {
+//            JsonArray data = resultJson.get("data").getAsJsonArray();
+//            for (JsonElement datum : data) {
+//                JsonObject object = datum.getAsJsonObject();
+//                idsMap.remove(object.get("vehicleId").getAsString());
+//            }
+//            Collection<String> values = idsMap.values();
+////            this.removeBatchByIds(values); 远程没有数据
+//        }
 //        else{
         this.removeBatchByIds(ids);
 //        }

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

@@ -440,7 +440,7 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
                 if(student.getScore() != null){
                     schoolRoll.setGraduatedScore(student.getScore().doubleValue());
                 }
-
+                schoolRoll.setInternshipState("IT_0001");
                 schoolRoll.setGraduatedUniversity(student.getGraduateSchool());
                 schoolRoll.setClassId(baseClass.getId());
                 schoolRoll.setMajorSetId(baseClass.getMajorSetId());

+ 4 - 0
src/test/java/com/xjrsoft/module/job/BaseNewStudentTaskTest.java

@@ -35,8 +35,10 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -141,6 +143,8 @@ class BaseNewStudentTaskTest {
         );
         Map<String, Long> majorSetNameMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getName, BaseMajorSet::getId));
 
+        Set<String> insCredentialNumber = new HashSet<>();
+
         //循环攀宝的数据,准备更新到新生表中
         List<BaseNewStudent> updateList = new ArrayList<>();
         List<BaseNewStudent> insertList = new ArrayList<>();

+ 73 - 8
src/test/java/com/xjrsoft/module/job/HikvisionBaseDataTaskTest.java

@@ -166,16 +166,16 @@ class HikvisionBaseDataTaskTest {
 
 
         tableName = "base_class";
-        Map<String, String> baseClass = dataMap.get(tableName);
-        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
+//        Map<String, String> baseClass = dataMap.get(tableName);
+//        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
 
 
-//        tableName = "base_student";
-//        List<HikvisionData> studentList = hikvisionDataMapper.selectList(
-//                new QueryWrapper<HikvisionData>().lambda().eq(HikvisionData::getTableName, tableName)
-//        );
-//        Map<String, String> baseStudent = dataMap.get(tableName);
-//        insertStudentOne(tableName, baseStudent, studentList);
+        tableName = "base_student";
+        List<HikvisionData> studentList = hikvisionDataMapper.selectList(
+                new QueryWrapper<HikvisionData>().lambda().eq(HikvisionData::getTableName, tableName)
+        );
+        Map<String, String> baseStudent = dataMap.get(tableName);
+        insertStudentOne(tableName, baseStudent, studentList);
 //        sql = "SELECT * FROM wf_room_applicant WHERE delete_mark = 0 AND STATUS = 1";
 //        List<Map<String, Object>> wfRoomApplicantList = SqlRunnerAdapter.db().selectList(sql);
 //
@@ -686,4 +686,69 @@ class HikvisionBaseDataTaskTest {
         }
     }
 
+
+    @Test
+    void selecAllStudent() throws SQLException {
+        ApiUtil apiUtil = new ApiUtil();
+        String apiPath = "/api/resource/v2/person/orgIndexCode/personList";
+        String sql = "SELECT CONCAT(t1.id, '-', REPLACE(t2.title,'年',''), '-', t1.class_type,'-FB3001') as id FROM base_class t1" +
+                " INNER JOIN base_grade t2 ON t1.grade_id = t2.id" +
+                " WHERE t1.delete_mark = 0 AND t1.is_graduate = 1 and t2.id = 1868532405673439232";
+        List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+        for (Map<String, Object> objectMap : list) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("pageNo", 1);
+            jsonObject.addProperty("pageSize", 500);
+            jsonObject.addProperty("orgIndexCode", objectMap.get("id").toString());
+
+            String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+
+            JsonParser jsonParser = new JsonParser();
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            JsonArray array = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
+            Map<Long, String> idMap = new HashMap<>();
+            for (JsonElement jsonElement : array) {
+                JsonObject element = jsonElement.getAsJsonObject();
+                if(!element.has("phoneNo") || element.get("phoneNo").isJsonNull()){
+                    System.out.println(element.toString());
+                    continue;
+                }
+                String personId = element.get("personId").getAsString();
+                String insSql = "INSERT INTO hikvision_data(create_date,TABLE_NAME,source_id,hikvision_id) " +
+                        "SELECT NOW(),'base_student', '" + personId + "','" + personId + "' WHERE NOT EXISTS (SELECT 1 FROM hikvision_data WHERE hikvision_id = '" + personId + "')";
+                SqlRunnerAdapter.db().insert(insSql);
+            }
+        }
+
+        sql = "SELECT CONCAT(t1.id, '-', REPLACE(t2.title,'年',''), '-', t1.class_type,'-FB3003') as id FROM base_class t1" +
+                " INNER JOIN base_grade t2 ON t1.grade_id = t2.id" +
+                " WHERE t1.delete_mark = 0 AND t1.is_graduate = 1 and t2.id = 1868532405673439232";
+        list = SqlRunnerAdapter.db().selectList(sql);
+        for (Map<String, Object> objectMap : list) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("pageNo", 1);
+            jsonObject.addProperty("pageSize", 500);
+            jsonObject.addProperty("orgIndexCode", objectMap.get("id").toString());
+
+            String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+
+            JsonParser jsonParser = new JsonParser();
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            JsonArray array = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
+            Map<Long, String> idMap = new HashMap<>();
+            for (JsonElement jsonElement : array) {
+                JsonObject element = jsonElement.getAsJsonObject();
+                if(!element.has("phoneNo") || element.get("phoneNo").isJsonNull()){
+                    System.out.println(element.toString());
+                    continue;
+                }
+                String personId = element.get("personId").getAsString();
+                String insSql = "INSERT INTO hikvision_data(create_date,TABLE_NAME,source_id,hikvision_id) " +
+                        "SELECT NOW(),'base_student', '" + personId + "','" + personId + "' WHERE NOT EXISTS (SELECT 1 FROM teacher_out_in_record WHERE hikvision_id = '" + personId + "')";
+                SqlRunnerAdapter.db().insert(insSql);
+            }
+        }
+
+    }
+
 }

+ 5 - 23
src/test/java/com/xjrsoft/module/liteflow/node/ImportStudentFaceNodeTest.java

@@ -43,28 +43,10 @@ class ImportStudentFaceNodeTest {
     void test(){
         String sql = "SELECT t1.* FROM xjr_user t1\n" +
                 "WHERE t1.delete_mark = 0 \n" +
-                "AND t1.credential_number IN (\n" +
-                "\tSELECT t3.credential_number\n" +
-                "        FROM student_report_record t1\n" +
-                "        INNER JOIN base_new_student t3 ON t3.id = t1.user_id\n" +
-                "        LEFT JOIN banding_task_class_student t2 ON t1.user_id = t2.new_student_id AND t2.delete_mark = 0\n" +
-                "        LEFT JOIN banding_task_class t5 ON t2.banding_task_class_id = t5.id\n" +
-                "        LEFT JOIN xjr_user t6 ON t5.teacher_id = t6.id\n" +
-                "        LEFT JOIN xjr_dictionary_detail t7 ON t3.gender = t7.code AND t7.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_dictionary_detail t8 ON t3.source = t8.code AND t8.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_dictionary_detail t9 ON t3.stduy_status = t9.code AND t9.delete_mark = 0\n" +
-                "        LEFT JOIN banding_task t10 ON t5.banding_task_id = t10.id\n" +
-                "        LEFT JOIN enrollment_plan t11 ON t11.id = t3.enrollment_plan_id\n" +
-                "        LEFT JOIN base_grade t4 ON t11.grade_id = t4.id\n" +
-                "        LEFT JOIN student_report_plan t12 ON t12.id = t1.student_report_plan_id\n" +
-                "        LEFT JOIN base_major_set t13 ON t13.id = t5.major_set_id\n" +
-                "        LEFT JOIN xjr_dictionary_detail t14 ON t5.class_type = t14.code AND t14.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_department t15 ON t15.id = t13.department_id\n" +
-                "        WHERE t1.delete_mark = 0 AND t1.enabled_mark = 1\n" +
-                "        AND t12.status IN(1,2)\n" +
-                "        AND t3.enrollment_plan_id = 1897950348853186562\n" +
-                "        AND t12.category = 2\n" +
-                "        AND t1.report_time IS NOT NULL\n" +
+                "AND t1.id IN (" +
+                " SELECT user_id FROM stundent_face_process WHERE create_date > '2025-05-05 0:00:00'\n" +
+                "AND hikvision_result LIKE '%{\"code\":\"0x%'\n" +
+                "AND exam_status = 1" +
                 ")";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
 
@@ -107,7 +89,7 @@ class ImportStudentFaceNodeTest {
                 if(dataJson.get("total").getAsInt() > 0){
                     JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
                             .getAsJsonObject().get("personPhoto").getAsJsonArray();
-                    if(personPhoto.size() != 0){
+                    if(personPhoto.size() == 0){
                         dataObj.setStatus(1);
                         dataObj.setExamStatus(1);
                         String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());