Browse Source

1、课表发布消息发送优化
2、岗位列表查询排序调整

dzx 6 months ago
parent
commit
c3e9022733

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

@@ -3,6 +3,7 @@ package com.xjrsoft.module.job;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.Entity;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -77,6 +78,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Optional;
 import java.util.Set;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 
 
@@ -275,34 +277,41 @@ public class JianyuekbScheduleTask {
 
 
         Set<String> techerIds = dataUtil.insertCourseTableEntiy(scheduleInfo, classroomMap, courseMap, semesterMap,
         Set<String> techerIds = dataUtil.insertCourseTableEntiy(scheduleInfo, classroomMap, courseMap, semesterMap,
                 teacherMap, classMap, receiveMsg.get("id").toString(), startDate, endDate);
                 teacherMap, classMap, receiveMsg.get("id").toString(), startDate, endDate);
-        sendMsg(techerIds, receiveMsg);
-        dataUtil.insertClassTime(scheduleInfo);
-    }
 
 
-    void sendMsg(Set<String> techerIds, Map<String, Object> receiveMsg) {
+        CompletableFuture.runAsync(() -> {
+            sendMsg(techerIds, receiveMsg);
+        });
 
 
-        JianyueData jianyueData = jianyueDataService.getOne(
-                new QueryWrapper<JianyueData>().lambda()
-                        .eq(JianyueData::getJianyueId, receiveMsg.get("edu_year_serial_no").toString())
-        );
-        String[] sourceId = jianyueData.getSourceId().split("_");
-        Department department = departmentService.getById(sourceId[0]);
+//        dataUtil.insertClassTime(scheduleInfo);
+    }
 
 
-        BaseGrade grade = gradeService.getById(sourceId[1]);
+    void sendMsg(Set<String> techerIds, Map<String, Object> receiveMsg) {
+        String tableName = "jianyue_data";
+        Entity where = Entity.create(tableName);
+        where.set("jianyue_id", receiveMsg.get("edu_year_serial_no").toString());
+        Map<String, Object> jianyueData = SqlRunnerAdapter.db().dynamicSelectOne(tableName, where);
+        String[] sourceId = jianyueData.get("source_id").toString().split("_");
+
+        tableName = "xjr_department";
+        where = Entity.create(tableName);
+        where.set("id", sourceId[0]);
+        Map<String, Object> department = SqlRunnerAdapter.db().dynamicSelectOne(tableName, where);
+
+        tableName = "base_grade";
+        where = Entity.create(tableName);
+        where.set("id", sourceId[1]);
+        Map<String, Object> grade = SqlRunnerAdapter.db().dynamicSelectOne(tableName, where);
         //通知对应教师
         //通知对应教师
-        List<User> userList = userService.listByIds(new ArrayList<>(techerIds));
-        List<User> userList1 = userService.list(
-                new MPJLambdaWrapper<User>()
-                        .distinct()
-                        .select(User::getId)
-                        .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
-                        .innerJoin(UserRoleRelation.class, UserRoleRelation::getUserId, User::getId)
-                        .innerJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                        .eq(Role::getCode, "KEBIAOGX")
-        );
+        String sql = "SELECT * FROM xjr_user WHERE id IN (" + techerIds.toString().replace("[", "").replace("]", "") + ")";
+        List<Map<String, Object>> userList = SqlRunnerAdapter.db().selectList(sql);
+        sql = "SELECT t1.* FROM xjr_user t1" +
+            " INNER JOIN xjr_user_role_relation t2 ON t1.id = t2.user_id" +
+            " INNER JOIN xjr_role t3 ON t2.role_id = t3.id" +
+            " WHERE t1.delete_mark = 0 AND t3.delete_mark = 0 AND t3.code = 'KEBIAOGX'";
+        List<Map<String, Object>> userList1 = SqlRunnerAdapter.db().selectList(sql);
         userList.addAll(userList1);
         userList.addAll(userList1);
 
 
-        for (User user : userList) {
+        for (Map<String, Object> user : userList) {
             try {
             try {
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 weChatSendMessageDto.setTemplateId(noticeTeacherTemplate);
                 weChatSendMessageDto.setTemplateId(noticeTeacherTemplate);
@@ -313,7 +322,7 @@ public class JianyuekbScheduleTask {
                 paramJson.put("thing8", thing8);
                 paramJson.put("thing8", thing8);
 
 
                 JSONObject thing2 = new JSONObject();
                 JSONObject thing2 = new JSONObject();
-                thing2.put("value", department.getName() + grade.getName());
+                thing2.put("value", department.get("name").toString() + grade.get("name").toString());
                 paramJson.put("thing2", thing2);
                 paramJson.put("thing2", thing2);
 
 
                 JSONObject thing6 = new JSONObject();
                 JSONObject thing6 = new JSONObject();
@@ -327,7 +336,7 @@ public class JianyuekbScheduleTask {
                 weChatSendMessageDto.setContent(paramJson);
                 weChatSendMessageDto.setContent(paramJson);
                 weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
                 weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
 
 
-                String openId = user.getOpenId();
+                String openId = user.get("open_id").toString();
                 if (openId != null && !"".equals(openId)) {
                 if (openId != null && !"".equals(openId)) {
                     weChatSendMessageDto.setUserId(openId);
                     weChatSendMessageDto.setUserId(openId);
                     weChatService.sendTemplateMessage(weChatSendMessageDto);
                     weChatService.sendTemplateMessage(weChatSendMessageDto);

+ 1 - 1
src/main/java/com/xjrsoft/module/organization/controller/PostController.java

@@ -90,7 +90,7 @@ public class PostController {
                 .like(StrUtil.isNotBlank(dto.getCode()), Post::getCode, dto.getCode())
                 .like(StrUtil.isNotBlank(dto.getCode()), Post::getCode, dto.getCode())
                 .like(ObjectUtil.isNotEmpty(dto.getEnabledMark()), Post::getEnabledMark, dto.getEnabledMark())
                 .like(ObjectUtil.isNotEmpty(dto.getEnabledMark()), Post::getEnabledMark, dto.getEnabledMark())
                 .select(Post.class, x -> VoToColumnUtil.fieldsToColumns(PostPageVo.class).contains(x.getProperty()))
                 .select(Post.class, x -> VoToColumnUtil.fieldsToColumns(PostPageVo.class).contains(x.getProperty()))
-                .orderByAsc(Post::getSortCode);
+                .orderByAsc(Post::getName);
 
 
         IPage<Post> page = postService.page(ConventPage.getPage(dto), queryWrapper);
         IPage<Post> page = postService.page(ConventPage.getPage(dto), queryWrapper);
         PageOutput<PostPageVo> pageOutput = ConventPage.getPageOutput(page, PostPageVo.class);
         PageOutput<PostPageVo> pageOutput = ConventPage.getPageOutput(page, PostPageVo.class);