dzx 1 рік тому
батько
коміт
f1a2c0905a

+ 4 - 1
src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceRuleDetailsMapper.java

@@ -3,6 +3,9 @@ package com.xjrsoft.module.attendance.mapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
 * @title: 考勤规则细则
@@ -12,5 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
 */
 @Mapper
 public interface AttendanceRuleDetailsMapper extends MPJBaseMapper<AttendanceRuleDetails> {
-
+    List<AttendanceRuleDetails> getTodayRules(@Param("dayOfWeek") String dayOfWeek);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/service/IAttendanceRuleCategoryService.java

@@ -4,6 +4,7 @@ import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
+import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
 
 import java.util.List;
 
@@ -38,4 +39,6 @@ public interface IAttendanceRuleCategoryService extends MPJBaseService<Attendanc
     * @return
     */
     Boolean delete(List<Long> ids);
+
+    List<AttendanceRuleDetails> getTodayRules();
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceRuleCategoryServiceImpl.java

@@ -30,6 +30,8 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.DayOfWeek;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -406,4 +408,11 @@ public class AttendanceRuleCategoryServiceImpl extends MPJBaseServiceImpl<Attend
 
         return true;
     }
+
+    @Override
+    public List<AttendanceRuleDetails> getTodayRules() {
+        LocalDateTime now = LocalDateTime.now();
+        DayOfWeek dayOfWeek = now.getDayOfWeek();
+        return detailsMapper.getTodayRules(dayOfWeek.name());
+    }
 }

+ 45 - 0
src/main/java/com/xjrsoft/module/job/AttendanceMessageTask.java

@@ -0,0 +1,45 @@
+package com.xjrsoft.module.job;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.xjrsoft.common.utils.DatasourceUtil;
+import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
+import com.xjrsoft.module.attendance.service.IAttendanceMessageSetService;
+import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.sql.DataSource;
+import java.util.List;
+
+/**
+ * 考勤消息通知
+ * @author dzx
+ * @date 2024年5月21日
+ */
+@Component
+@Slf4j
+public class AttendanceMessageTask {
+    @Autowired
+    private IAttendanceMessageSetService messageSetService;
+
+    @Autowired
+    private IAttendanceRuleCategoryService ruleCategoryService;
+    @Scheduled(cron = "0 */15 * * * ?")
+    public void RefreshConnectionPool() {
+        String active = SpringUtil.getActiveProfile();
+        if(!"prod".equals(active)){
+            log.info("非正式环境,无法执行数据推送");
+            return;
+        }
+
+        List<AttendanceRuleDetails> ruleDetails = ruleCategoryService.getTodayRules();
+
+        try {
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+}

+ 13 - 0
src/main/resources/mapper/attendance/AttendanceRuleDetailsMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.attendance.mapper.AttendanceRuleCategoryMapper">
+    <select id="getTodayRules" resultType="com.xjrsoft.module.attendance.entity.AttendanceRuleDetails">
+        SELECT t2.* FROM attendance_rule_category t1
+        INNER JOIN attendance_rule_details t2 ON t1.id = t2.attendance_rule_category_id
+        WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND NOW() BETWEEN start_date AND end_date
+        AND t2.date_type = #{dayOfWeek}
+    </select>
+
+</mapper>

+ 26 - 0
src/test/java/com/xjrsoft/module/job/AttendanceMessageTaskTest.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.job;
+
+import org.junit.jupiter.api.Test;
+
+import java.time.DayOfWeek;
+import java.time.LocalDateTime;
+import java.time.format.TextStyle;
+import java.util.Locale;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author dzx
+ * @date 2024/5/23
+ */
+class AttendanceMessageTaskTest {
+
+    @Test
+    void test(){
+        LocalDateTime now = LocalDateTime.now();
+        DayOfWeek dayOfWeek = now.getDayOfWeek();
+
+        String dayName = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.getDefault());
+        System.out.println("今天是:" + dayOfWeek.name());
+    }
+}

+ 54 - 16
src/test/java/com/xjrsoft/module/job/HikvisionBaseDataTaskTest.java

@@ -65,21 +65,23 @@ class HikvisionBaseDataTaskTest {
             dataMap.put(table, tableData);
         }
         DataUtil dataUtil = new DataUtil();
+
+//        deletePerson();
         String tableName = "xjr_department";
-//        Map<String, String> department = dataUtil.insertDepartment(use, tableName, dataMap.get(tableName));
-//        if(department.isEmpty() && dataMap.get(tableName) != null){
-//            department = dataMap.get(tableName);
-//        }
+        Map<String, String> department = dataUtil.insertDepartment(use, tableName, dataMap.get(tableName));
+        if(department.isEmpty() && dataMap.get(tableName) != null){
+            department = dataMap.get(tableName);
+        }
 //
-//        //推送教职工
-//        tableName = "base_teacher";
-//        dataUtil.insertTeacher(use, tableName, dataMap.get(tableName), department);
+        //推送教职工
+        tableName = "base_teacher";
+        dataUtil.insertTeacher(use, tableName, dataMap.get(tableName), department);
 //
         //推送车辆
 
-        String carTableName = "car_message_apply";
-        Map<String, String> baseClass = dataMap.get(carTableName);
-        dataUtil.insertCar(use, carTableName,baseClass, faceImportMapper);
+//        String carTableName = "car_message_apply";
+//        Map<String, String> baseClass = dataMap.get(carTableName);
+//        dataUtil.insertCar(use, carTableName,baseClass, faceImportMapper);
 
 //        tableName = "base_class";
 //        Map<String, String> baseClass = dataMap.get(tableName);
@@ -98,7 +100,7 @@ class HikvisionBaseDataTaskTest {
 
 
 //        selecAllPersonById(use);
-        selectResource(use);
+        selecAllPersonById(use);
     }
 
     public static void selectCar(Db db, String tableName) throws SQLException {
@@ -246,14 +248,30 @@ class HikvisionBaseDataTaskTest {
 
     void selecAllPersonById(Db db) throws SQLException {
         String apiPath = "/api/resource/v2/person/advance/personList";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("pageNo", 1);
-        jsonObject.addProperty("pageSize", 500);
-        jsonObject.addProperty("personIds", "654321987655613");
 
 
+        Map<Long, String> map = new HashMap<>();
+        map.put(14954817043910L, "肖会春");map.put(14954817552454L, "苏平");map.put(14954818123205L, "刘瑞田");
+        map.put(14954818337094L, "王开兰");map.put(14954818837189L, "龚仁容");map.put(14954819407814L, "张洪梅");
+        map.put(14954819516102L, "袁夕芳");map.put(14954819746757L, "冯加林");map.put(14954820166213L, "张凤琴");
+        map.put(14954820362949L, "周家慧");map.put(14954820552390L, "龙运刚");map.put(14954820751429L, "张怀会");
+        map.put(14954825048006L, "李孝秋");map.put(14954802607430L, "王强");
         ApiUtil apiUtil = new ApiUtil();
-        String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+        JsonParser parser = new JsonParser();
+        Map<Long, String> idMap = new HashMap<>();
+        for (Long id : map.keySet()) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("pageNo", 1);
+            jsonObject.addProperty("pageSize", 500);
+            jsonObject.addProperty("personName", map.get(id));
+            String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+            JsonObject resultJson = parser.parse(result).getAsJsonObject();
+            JsonObject info = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray().get(0).getAsJsonObject();
+            String personId = info.get("personId").getAsString();
+            idMap.put(id, personId);
+        }
+        insertRecord(db, "base_teacher",idMap);
+
     }
 
     void selecAllPerson(Db db) throws SQLException {
@@ -329,4 +347,24 @@ class HikvisionBaseDataTaskTest {
         System.out.println(result);
     }
 
+    void deletePerson(){
+        String apiPath = "/api/resource/v1/person/batch/delete";
+        Map<Long, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        ApiUtil apiUtil = new ApiUtil();
+        JsonArray dataArray = new JsonArray();
+        dataArray.add("14954805813957");dataArray.add("14954812339909");dataArray.add("14954808977606");
+        dataArray.add("14954812285254");dataArray.add("14954812392774");dataArray.add("14954812448325");
+        dataArray.add("14954804711366");dataArray.add("15331003650245");dataArray.add("14954802607430");
+        dataArray.add("14954807016389");dataArray.add("14954803353286");dataArray.add("14954806910277");
+        dataArray.add("14954807016389");
+
+        JsonObject paramJson = new JsonObject();
+        paramJson.add("personIds", dataArray);
+        Map<String, String> headerMap = new HashMap<>();
+        headerMap.put("tagId", "deleteperson");
+        String result = apiUtil.doPost(apiPath, paramJson.toString(), null, headerMap);
+        System.out.println(result);
+    }
+
 }